【问题标题】:Is ehcache as hibernate 2nd lvl cache transactional?ehcache 作为休眠第二级缓存是事务性的吗?
【发布时间】:2012-11-14 05:55:17
【问题描述】:

我的实体标有

@Cache(usage = CacheConcurrencyStrategy.TRANSACTIONAL)

应用程序运行(不确定如何验证实体是否实际缓存)。

spring 上下文中的休眠配置:

<prop key="hibernate.cache.use_second_level_cache">true</prop>
<prop key="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</prop>

现在,如果将缓存从 ehcache 更改为 infinispan,我会收到一个异常,指出这是一个事务缓存,但没有找到事务管理器。

因此我的问题是:ehcache 实际上是事务性的吗?

【问题讨论】:

    标签: hibernate ehcache


    【解决方案1】:

    从 2.1 版开始,Ehcache 支持事务缓存...但是您确实意识到 Hibernate 的(任何)事务缓存需要完整的 JTA 环境?

    【讨论】:

    • 好的,所以 ehcache 使用事务缓存策略和 NO JTA 运行这一事实(与引发异常的 infinispan 相比)可以被视为错误吗?我的意思是,如果说“运行事务性”并且它并非没有警告......不理想。
    • 听起来确实不正确...我会在 jira.terracotta.org/jira/browse/EHC 使用该信息创建一个 jira,其中包含您正在运行的 Hibernate 和 Ehcache 的确切版本。
    【解决方案2】:

    据我所知,EH 缓存不是事务性的。请参阅下面的 hibernate 本身的链接。它还说 EH 缓存是非事务性的。 JBoss Cache 是我知道的事务。

    http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/performance.html#performance-cache

    【讨论】:

    • Ehcache 对 Hibernate 有事务支持。另外,我认为 JBoss Cache 已“弃用”,人们现在指向 Infinispan
    猜你喜欢
    • 1970-01-01
    • 2023-03-03
    • 2012-01-03
    • 2012-04-30
    • 2010-10-20
    • 2015-04-24
    • 2016-06-23
    • 1970-01-01
    相关资源
    最近更新 更多