JPA Fetch

629 ワード

JPAカスケード属性のfetchは、カスケード関係をロードする属性であり、FetchType.LAZY怠け者ロードとFetchType.EAGER急ロードに分けられる
FetchType.LAZY(怠惰ロード):定義された属性に関連付けられたデータはすぐにデータベースからロードされず、同じセッションでいつ使うか、いつ取るか(データベースへの再アクセス).しかしsessionが閉じた後、再び取ることができなくて、異常を報告します:org.hibernate.LazyInitializationException.この異常を解決するにはLAZYをEAGERに変換する必要がある.一般的に@OneToManyはLAZY
FetchType.EAGER(急負荷):定義された属性に関連付けられたデータはすぐにメモリにロードされるので、セッションがオフになっても取り出すことができます.一般的に@ManyToOneはEAGERである.
例外org.hibernate.LazyInitializationExceptionの解決策として、エンティティクラスに注釈Proxy(lazy=false)を付けてデフォルトの怠け者ロードをオフにする方法もあります.