0

hbm マッピング ファイルで遅延プロパティを「true」に設定しました。ただし、コードを使用して「lazy = false」を動的に変更したい。どうすればこれを達成できますか?

4

2 に答える 2

1

HQL またはFetchMode.JOINCriteria API を介して結合を使用できます。この場合、関連付けを 1 回で取得できます。関連するオブジェクトは、使用する場合、第 2 レベルのキャッシュからフェッチされないことに注意してください。

別のオプションはHibernate.initialize()、または単に呼び出すことobject.getAssociation()です。

于 2012-11-23T18:33:02.723 に答える
0

を見てくださいsessionFactory.getClassMetadata(YourClass.class)。すべてのフィールドにアクセスするメソッドがあります。

ただし、より文明的な方法は、フェッチ戦略を HQL または Criteria クエリでオーバーライドすることです。もう 1 つのオプションは、メタデータ ( を持つlazy="false") を変更し、セッション ファクトリを再構築することです。見た目ほど怖くないです。

于 2012-11-23T22:48:52.073 に答える