2011-07-01 6 views
1

私は、Hibernateを知らないクライアントにRMI経由で送る必要があるJPA + Hibernateエンティティを持っていますので、Hibernateを "クリーンアップ"するメソッドを作っていますそれから:オブジェクトからHibernateを浄化しますが、遅延ロードしないでください

// shortened 
public class Player { 
    private Set<Item> ownedItems; 
    public void makeSerializable() { 
     ownedItems = new HashSet<Item>(ownedItems); 
    } 
} 

それはまだロードされていない場合しかし、私はmakeSerializableを呼び出すときHibernateは、私はしたくないこれ、怠惰な負荷ownedItemsしようとすると、Hibernateセッションがあるので、これも不可能です。代わりに、ownedItemsがロードされていない場合、nullまたは空のセットに設定したいと思います。

どうすればいいですか?

答えて

3
if (!Hibernate.isInitialized(ownedItems)) { 
    ownedItems = new HashSet<Item>(); 
} 

これは、セッションを必要とせずにコレクションが初期化されているかどうかをテストする方法です。

関連する問題