データベースから取得したオブジェクトを取得したい。私は自分のエンティティのキャッシュを許可しないことに決めました。この構成を使用することにより:@CacheをEclipseLink
@Cache(
type = CacheType.NONE/*,
alwaysRefresh = true,
disableHits = true,
coordinationType = INVALIDATE_CHANGED_OBJECTS*/
)
しかし、私はthe documentation here読んだこと:
NONEない
public static final CacheType NONE
WARNING: Does not preserve object identity and does not cache objects.
は重要な警告、私はJVMが彼らの本当のアイデンティティにオブジェクトをmisrelateことを理解することです! alwaysRefreshなどのように、オブジェクトをキャッシュしないように最適な設定をすることに関する提案はありますか?
ありがとうございました。実際、私のアプリケーションはLAN上の多くのクライアントによって使用されています。だから、私は= CacheTypeをSOFT(IDを失わないため)とalwaysRefreshをtrueにタイプすることに決めました。 –
通常、JPAプロバイダでグローバルに設定します。persistence.xmlを使用している場合は、 NONE shared-キャッシュモード>。通常は、コード専用のアプローチでEclipseLinkを使用して、 '' 'jpaProperties.setProperty(org.eclipse.persistence.config.PersistenceUnitProperties.CACHE_SHARED_DEFAULT、" false ")' ''を設定します。 –
キャッシュをnonoに設定すると、エンティティの参照に問題が発生します。これは私が直面しているようないくつかのランダムな問題があります:http://stackoverflow.com/questions/20920400/jpa-2-eclipselink-caching-issue?lq=1 –