Hibernate Enversでは、設定されているフェッチタイプに関係なく、エンティティの関連するすべてのコレクションが遅延ロードされます。したがって、他のエンティティのコレクション(もちろん両方とも監査済み)を持つエンティティを監査クエリする場合、コレクションはSetProxy
最初は(デバッグ時に表示されます)です。
では、どうすればそのプロキシを初期化できますか?使用しHibernate.initialize()
ても効果はありません(HibernateとEnversが異なるプロキシオブジェクトを使用しているためだと思います)。アイテムを反復処理することでセットを初期化できることはわかっていますが、エンティティに複数のコレクションがあり、メンテナンスの問題は言うまでもなく、それは私にとってオプションではありません。
Hibernateセッションがすでに閉じられている(ドメインオブジェクトをdtosに変換する)後でコレクションにアクセスするため、これらを熱心に初期化する必要があります。
Hibernate3.5.6を使用しています。