有没有帮助知道Hibernate是否已经加载了一个属性?

Art*_*ald 8 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());
Run Code Online (Sandbox Code Playgroud)

Chs*_*y76 14

实际上有两种方法.

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

要确定是否已初始化惰性集合(或实体)(如在您的示例中),您可以Hibernate.isInitialized()使用集合(实体)实例作为参数进行调用.