我想从数据库中及时获取对象。我决定不允许缓存我的实体。通过采用这种结构:@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 –