【发布时间】:2014-06-21 01:37:36
【问题描述】:
我已阅读以下页面,但我有几个疑问。
关于一级缓存的持久化上下文类型 What is the difference between Transaction-scoped Persistence context and Extended Persistence context?
关于二级缓存 http://www.objectdb.com/java/jpa/persistence/cache
现在,我的问题是:
- 在正常情况下,最好的 PersistenceContextType 是什么 选择 L1 缓存、TRANSACTION 还是 EXTENDED?我想答案 是 TRANSACTION,因为它是默认值。但是我想知道什么时候 我应该使用 EXTENDED。
- 在正常情况下,为
L2 缓存的以下属性:
- javax.persistence.sharedCache.mode(我想答案是 ALL,因为它是默认设置并缓存所有实体)
- javax.persistence.cache.retrieveMode(我想答案是 USE,因为它是默认设置并在检索时使用缓存)
- javax.persistence.cache.storeMode(我想答案是 USE,因为它是默认设置,但我仍然不明白与 REFRESH 的区别,这对我来说似乎更好)
有人可以解释如何正确地正确放置 L1 和 L2 的这些属性,并解释何时使用某些值或其他值吗?
【问题讨论】:
-
您对“正常”SE 或 EE 的定义是什么?
-
根据常见问题解答,基于意见的问题不适合 SO
-
kostja,我对正常的定义是 Java EE 7。
-
并且还在EJB中使用@PersistenceContext获得的EntityManager,并且应用程序是一个读多于写的典型网站。
-
已发布初步答案。会尽快更新更多细节
标签: caching jpa second-level-cache first-level-cache