2011-08-11 17 views
3

私はいくつかのメンバーが注釈持っているクラスがあります、私のプログラムの特定の部分では、これらの負荷あまりにも多くのデータをJPAおよびEclipseLinkの - オーバーライドFetchType.Eager

@ManyToOne(fetch = FetchType.EAGER) 

を。残念ながら、この注釈はこのプログラムの他の部分のパフォーマンスに影響するため、これらの注釈を変更することはできません。 eclipselinkで、これを特定のJPQLクエリに対してLAZYに変更する方法はありますか?

これを別の方法で使用する場合は、フェッチ結合を使用してLAZYをEAGERに変更できます。私はEAGERからLAZYに変わるものを期待しています

答えて

2

それはできません。私の経験則は、すべてをLAZYにし、eager fetchingを望むならカスタムクエリを使います。

エンティティを読み込むのではなく、タプルを読み込んで(DTOを埋め込む)ことができます。

+0

もっと重大な見直しができるまで、恐ろしいパフォーマンスで生きていくつもりだと思います。 – hyperman

0

私は、eclipselink 2.3以降、エンティティを実行時に拡張できることを知っています。 http://wiki.eclipse.org/EclipseLink/Examples/JPA/Extensibility

+0

これは恐ろしいものですが、メンテナンスに賢明です;-)でも、このeclipselinkのコアナーについて知らせてくれてありがとう。ある日それは便利だろう! – hyperman

関連する問題