次のようなエンティティのリストがある場合、特定のエンティティが持つすべての関係をどのようにeagerloadしますか?
List<Question> questions = query.getResultList();
クエリは次のとおりです。SELECT q FROM Question q;
使用できることはわかっていますがHibernate.initialize()、それはリポジトリレイヤーのリストをループする必要があるということですか? または、より良い解決策はありますか?
次のようなエンティティのリストがある場合、特定のエンティティが持つすべての関係をどのようにeagerloadしますか?
List<Question> questions = query.getResultList();
クエリは次のとおりです。SELECT q FROM Question q;
使用できることはわかっていますがHibernate.initialize()、それはリポジトリレイヤーのリストをループする必要があるということですか? または、より良い解決策はありますか?
10.2.3.5.3を使用できます。JPQLフェッチが参加します。
FETCH JOINを使用すると、クエリ実行の副作用として関連付けをフェッチできます。FETCH JOINは、エンティティとその関連エンティティに対して指定されます。
上記のリンクから借用した例:
SELECT mag FROM Magazine mag LEFT JOIN FETCH mag.articles WHERE mag.id = 1
の利点は、FETCH JOINデフォルト設定が怠惰になる可能性があることだと思います。