【问题标题】:Hibernate Cache annotations休眠缓存注解
【发布时间】:2015-09-11 20:43:33
【问题描述】:

为什么在 hibernate 文档中我会看到实体上带有两个注释的引用以进行缓存?

例如: http://docs.jboss.org/hibernate/orm/4.2/manual/en-US/html_single/#performance-cache-mapping

@Entity 
@Cacheable
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class Forest { ... }

@Cacheable 和@Cache 注释都需要吗?

【问题讨论】:

    标签: hibernate jpa ehcache


    【解决方案1】:

    如果您只使用 Hibernate,则仅使用 @Cache 即可,因为 @Cacheable 是您可以与 JPA 或 Spring 一起使用的另一个选项。

    @Cacheable 通常用于 JPA 实体。在文档中,他们只是指@Cache 注释,所以只关注它。

    这里是查看 Hibernate Cache Levels 的一个很好的资源: http://www.javacodegeeks.com/2012/02/hibernate-cache-levels-tutorial.html

    希望这会有所帮助。尽力了:)

    【讨论】:

    • 正如你所说,两者都是 diff api 中的 diff 术语。
    【解决方案2】:

    简而言之:没有。

    总之:@Cache是​​Hibernate提供的缓存接口,而@Cacheable是JPA规范提供的接口。您可以选择其中之一,甚至同时使用两者。请注意,只有当您的 persistence.xml 的缓存元素设置为 ENABLE_SELECTIVE 或 DISABLE_SELECTIVE 时,@Cacheable 才会起作用。

    【讨论】:

      猜你喜欢
      • 2011-03-12
      • 1970-01-01
      • 1970-01-01
      • 2013-09-02
      • 2013-09-29
      • 1970-01-01
      • 2016-08-13
      • 2018-01-09
      相关资源
      最近更新 更多