java - 是否有助手可以知道 Hibernate 是否已加载属性?

标签 java hibernate lazy-loading helper

我需要一个助手来了解属性是否已加载,以避免 LazyInitializationException。可能吗?

@Entity
public class Parent {
    @OneToMany
    private List<Child> childList;
}

@Entity
public class Child {

}

"select distinct p from Parent p left join fetch p.childList";

// Answer goes here
// I want to avoid LazyInitializationException
SomeHelper.isLoaded(p.getChildList());

最佳答案

实际上有两种方法。

要了解惰性属性 是否已初始化,您可以调用Hibernate.isPropertyInitialized()。以您的实体实例和属性名称作为参数的方法。

要了解惰性集合(或实体)是否已初始化(如您的示例),您可以调用Hibernate.isInitialized()以集合(实体)实例作为参数。

关于java - 是否有助手可以知道 Hibernate 是否已加载属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1589144/

相关文章:

java - 检查 Java 正则表达式中的字母派生属性?

Java boolean 算法检查位数是否为偶数

java - 线程 "main"java.lang.NoClassDefFoundError : org/dom4j/io/SAXReader in Hibernate application development 中出现异常

java - 使用 hibernate 在 Mysql 5.7 数据库中存储/检索 Json 数据

java - CDI 会(或应该)提供包限定符吗?

java - 为什么 session.createCriteria(classtype).list() 返回的对象比列表中的对象多?

rust - 如何返回对 RefCell<Option<T>>> 内部数据的引用?

ios - ScrollView 中的分页和重用 View

mysql - 如何减少显示输出所需的加载时间?

java - "Non-static variable this cannot be referenced from a static context"创建对象时