我需要一个帮助者来了解是否已加载属性,以避免这种情况LazyInitializationException。可能吗?
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.isPropertyInitialized()
要查明是否已初始化惰性 集合 (或实体)(如您的示例中所示),可以Hibernate.isInitialized()使用集合(实体)实例作为参数来调用。
Hibernate.isInitialized()