熱心なフェッチまたは遅延フェッチを行うようにモデルを構成する方法を理解しています。しかし、今回だけコレクションをeager-fetchするようにアプリケーションに指示するにはどうすればよいでしょうか?
言い換えると。get メソッドを持つ DAO があります。EntityDao.getEntity(entityId)
このエンティティには、Children
デフォルトで遅延ロードされるコレクションがあります。
dao-method がトランザクション対応であるとしましょう。
ほとんどの場合、子のないエンティティのみが必要ですが、時々、子を熱心に取得する必要があります。さて、どうすればそれについて行くでしょうか?
これがすべて正しいことを理解していれば、セッションはトランザクション内にのみ存在します。そのため、トランザクションが終了した後 (この場合は dao メソッドの後)、遅延フェッチは実行できなくなります。それでは、トランザクションをコードの上に置くか、トランザクション内でオブジェクトを熱心にフェッチできますか?
では、トランザクション内でこのeager-fetchを行うにはどうすればよいでしょうか?
私のオプションは何ですか?