2.2.5.5. Association fetching 関連のフェッチ

<2.2.5.4. Transitive persistence with cascading | 目次 | 2.2.6. Mapping composite primary and foreign keys>

関連エンティティのフェッチに、即時と遅延のどちらでも使えるよ。fetch パラメータは FetchType.LAZY か FetchType.EAGER をセットできるよ。EAGER は 関連オブジェクトを検索するのに アウタージョインを使うよ。一方、LAZY は 関連オブジェクトに最初にアクセスされたときに初めて検索されるよ。@OneToMany と @ManyToMany 関連はデフォルトは LAZY で、@OneToOne と @ManyToOne のデフォルトは EAGER だよ。静的フェッチに関しての詳細は、Section 2.4.5.Lazy options and fetching modes, “Lazy options and fetching modes”を見てね。

お勧めは、全ての静的フェッチ定義は LAZY にしといて、JPA_QL で動的に上書きすることだよ*1JPA_QL は、特定のクエリを実行するときに遅延化で上書きすることができる、fetch キーワードを持っているよ。これはパフォーマンスの改善にとても役立つし、ケースよって使い分けることができるよ*2

*1:訳注: onn となっているがonのtypo

*2:訳注: 相当意訳