私の問題は非常に単純ですが、Hibernate を希望どおりに動作させる方法がわかりません。MainTable は、ParentTable の 100 行のうち m=26 行を指します
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "PARENT_ID")
@Fetch(FetchMode.JOIN)
「MainTableから」単純にクエリすると
26 + 1 クエリが生成されます
クエリをトレースすると、最初のクエリは 26 の後のクエリで使用される PARENT_ID のみをロードします。最初のクエリでPARENT_TABLE全体をロードする方法が必要だと思います..
次のように仮定してください。
- FetchType.EAGER は必須です
- MainTable mt left join fetch mt.parent parent からの使用は問題ありませんが、多くの関連付けがあります