一尘不染

是否有帮助者来了解Hibernate是否已加载属性?

hibernate

我需要一个帮助者来了解是否已加载属性,以避免这种情况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());

阅读 197

收藏
2020-06-20

共1个答案

一尘不染

实际上有两种方法。

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

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

2020-06-20