我想從數據庫中及時獲取對象。我決定不允許緩存我的實體。通過採用這種結構:@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例如對象的最佳配置。
非常感謝。實際上,我的應用程序被許多客戶通過局域網使用。所以,我決定鍵入= CacheType爲SOFT(不丟失身份)並且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 –