このエラーはかなり一般的ですが、検索したところ何も機能していないようです。
Optionエンティティ(childrenOptions、parentOption-遅延ロードとして)に再帰的な関係があり、次のようにHQLクエリを介してプレーンリストをロードしています:
Session session = sessionFactory.openSession();
session.beginTransaction();
List result = session.createQuery("from Option as o").list();
session.getTransaction().commit();
session.close();
return result;
以前にロードされた他のロールエンティティに依存しているため、Hibernateセッションから手動でユーザーのオプションツリーを構築しようとしています。
そのため、 getChildrenOptions()プロパティを使用してサブオプションを.addしようとすると、 「プロキシを初期化できませんでした-セッションがありません」というエラーが発生します。
私はすでにsession.evict()と.getHibernateLazyInitializer()。getImplementation( )を試しましたが、
if (option instanceof HibernateProxy)
常にfalseです。
このプロキシの動作を不可能/削除して、通常のPOJOのようなコレクションプロパティを操作することは可能ですか?
すべてのオプションを熱心にロードすることはパフォーマンスの問題のようです。私は自分でツリーを構築したいと思います。
前もって感謝します。