2011-09-23 3 views
3

私は、SEAプロジェクトを開発するためにEE開発のためにeclipse indigoを使用しています。これはJPAプロジェクトのサポートから恩恵を受けるためです。
私はJPAプロジェクトを作成し、ここに私のpersistence.xmlファイルのプロパティです:persistence.xmlキャッシュプロパティ警告

<properties> 
     <property name="eclipselink.persistence-context.reference-mode" value="WEAK" /> 
     <property name="eclipselink.cache.shared.default" value="false"/> 
     <property name="eclipselink.cache.size.default" value="5000"/> 
     <property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.EmbeddedDriver" /> 
     <property name="javax.persistence.jdbc.url" 
      value="jdbc:derby:DB;create=true;" /> 

     <property name="eclipselink.ddl-generation" value="create-tables" /> 
     <property name="eclipselink.ddl-generation.output-mode" value="both" /> 
    </properties> 

警告が表示されます。

"eclipselink.cache.shared.default" is a legacy entity caching property. Consider migration to JPA 2.0 and EclipseLink cache settings via annotation or XMLmapping file 

私はEclipseLinkの最後のリリース(2.3.0)を使用しています、hereはELドキュメントへのリンクです。ここには、プロパティをpersistence.xmlファイルに設定する例があります。
誰もが警告の理由を知っていますか?

私は通常のJavaプロジェクトで同じプロパティを使用しましたが、警告はなく、JPAプロジェクトを使用した場合にのみ表示されることに注意してください。

答えて

2

EclipseLinkエンティティのキ​​ャッシュの使用について通知するだけです。代わりに、JPA 2.0の一部であるキャッシュを使用できることが示唆されています。 http://en.wikibooks.org/wiki/Java_Persistence/Caching

をそして、それがそうする理由は、おそらく最高のようなメッセージを追加するための要求で説明されています:使用は、ここに他のソースの中で記述されているリンク@MikkoMためhttps://bugs.eclipse.org/bugs/show_bug.cgi?id=294077

+0

感謝を。私が何かを見逃していない場合、解決策は、persistence-unit要素の下に要素をNONEに設定することです(プロパティ "eclipselink.cache.shared.default"はJPA 1.0用です)。しかし、この解決策を適用すると、 "eclipselink.cache.size.default"の下に別の警告が出るようになりました==>これは、 'cache.size'プロパティ( '@Cache'と '@Cacheable'アノテーションの場合と同じ)レベルキャッシュ(第1レベルではない)? –

+0

あなたの目標は何ですか。 と重複しているものをJPA 2の一部である共有キャッシュの設定と構成するそのようなすべてのプロパティについて警告を受けるはずです。これらの設定を削除することをお勧めします。 は標準のJPA 2構成で、NONEに設定するとキャッシュが無効になります。これはもちろん、パフォーマンスに重大な打撃を与えます。 eclipselink.cache.size.defaultは共有キャッシュ(〜2次キャッシュ) –

+0

私は実際には独自の拡張永続コンテキスト(EntityManager)を使用するスタンドアロンのSwingアプリケーションを開発しています。私のアプリケーションには、他の永続コンテキストがないため、共有キャッシュは必要ありません。独自のEMに関連するL1キャッシュのみが必要です。永続コンテキストWEAKモードを使用すると、メモリ管理の問題を緩和します。私は 'cache.size'プロパティを削除しましたが、L1キャッシュを調整するために '@Cache'と '@Cacheable'アノテーションを使用できるかどうか疑問に思っていますか? –