11

を回避する方法としてプロパティがロードされているかどうかを知るためのヘルパーが必要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());
4

2 に答える 2

16

実は2つの方法があります。

遅延プロパティHibernate.isPropertyInitialized()が初期化されているかどうかを確認するには、エンティティ インスタンスとプロパティ名をパラメータとしてメソッドを呼び出します。

遅延コレクション(またはエンティティ)が初期化されているかどうかを確認するには(例のように)Hibernate.isInitialized()、コレクション(エンティティ)インスタンスをパラメータとして呼び出すことができます。

于 2009-10-19T16:05:20.873 に答える