2009-10-19 16 views
7

LazyInitializationExceptionを回避する方法としてプロパティがロードされているかどうかを知るには、ヘルパーが必要です。出来ますか?プロパティがHibernateによってロードされたかどうかを知るヘルパーはありますか?

@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()); 

答えて

13

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

怠惰なプロパティが初期化されているかどうかを調べるには、エンティティインスタンスとプロパティ名をパラメータとしてHibernate.isPropertyInitialized()メソッドを呼び出すことができます。

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

+0

いつもあなた、Chss。ありがとうございました。 –

関連する問題