【问题标题】:JPA2 cache or hibernate cacheJPA2 缓存或休眠缓存
【发布时间】:2016-08-13 08:13:25
【问题描述】:

我喜欢创建一个新项目,基于 hibernate 和 JPA 2 的集成层,我需要使用持久性缓存。

jpa2缓存和hibernate缓存有什么区别?

每个缓存的优缺点是什么?

【问题讨论】:

  • JPA 是一个规范。 Hibernate 是该规范的一个实现。我不确定您所说的“持久性缓存”究竟是什么意思,但是由于 Hibernate 和 JPA 基本上是同一件事,所以您所说的 jpa2 缓存和休眠缓存也是同一件事。
  • 我知道它们不是同一个架构,有很大的不同。我搜索这个
  • 什么是“他们”?您能否提供一个具体示例来说明“JPA2 缓存”的含义以及“Hibernate 缓存”的含义?什么是“大差异”?
  • 确保你没有混淆“Hibernate Core”(就像 2009 年之前的那样,与 Session 和所有)和“Hibernate ORM/JPA”(就像 2009 年之后那样,与 @987654322 @ 和所有)。由于一些不清楚的原因,初学者仍然更看重过时且维护不善的业余教程网站,这些网站在 Internet 上充斥着广告,而不是货架上的真正 Java EE 书籍。

标签: java hibernate jakarta-ee caching jpa-2.0


【解决方案1】:

实际上 JPA​​2 是规范,而 Hibernate 是该规范的实现。

它们都不提供缓存实现,除了会话缓存(您的实体在单个事务/会话交互中)

如果您打算添加替换休眠的可能性,那么请使用纯 JPA2 注释和配置。

Hibernate 的注解 @Cache 对实体如何存储在缓存中提供了更细粒度的控制,JPA 的 @Cacheable 仅提供包含在缓存中或不包含在缓存中的可能性(所有对缓存中存储的控制都在通用 JPA 配置中定义和缓存实现)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-29
    • 2015-01-05
    • 2011-11-18
    • 2017-01-16
    • 2011-06-18
    • 2011-10-13
    • 2012-03-14
    • 2010-10-20
    相关资源
    最近更新 更多