【问题标题】:config ehcache.xml for jpa entity or use annotation?为 jpa 实体配置 ehcache.xml 或使用注释?
【发布时间】:2010-12-22 16:52:34
【问题描述】:

当使用ehcache而不是定义语句时

 <cache name="testonly.package.model.TestPOJOcategory"
        maxElementsInMemory="200"
        eternal="true"
        overflowToDisk="false"
        timeToIdleSeconds="300"
        timeToLiveSeconds="600"
    />

可以独立于我们使用的任何缓存提供程序直接定义内部实体吗?

@Cache(
  type=CacheType.SOFT, 
  size=64000 
  expiry=36000000,  
  coordinationType=CacheCoordinationType.INVALIDATE_CHANGED_OBJECTS 
)

参考:http://wiki.eclipse.org/EclipseLink/Examples/JPA/Caching(仅显示 EclipseLink,不显示 ehcache)

【问题讨论】:

    标签: java hibernate orm ehcache second-level-cache


    【解决方案1】:

    首先,即使大多数 JPA 持久性提供程序(如 Hibernate、EclipseLink 等)提供对二级缓存的支持,JPA 1.0 也没有指定支持二级缓存。因此,在使用 L2 缓存时,您实际上使用的是非标准的 JPA 扩展,并且不能从一个提供者移植到另一个提供者。 Hibernate 的 @Cache 注解与 EclipseLink 的 @Cache 注解不同,也无法与 OpenJPA 的 @DataCache 注解相提并论。所有这些都是不同的,它们是专有的。如果您使用的是 Hibernate(这是我对您之前问题的理解),您不应该查看 EclipseLink 专有的东西(或者仅针对您的文化,但如果可以的话,这个问题超出了文化范围)。

    第二,是什么让你觉得EclipseLink的@Cache注解和EHCache有关系? AFAIK,EclipseLink 使用自己的cache implementation,与 EHCache 无关。

    其实,我感觉你在这里有点迷失了。你也许应该放慢速度,一步一步地做事:选择一个解决方案,坚持下去,确定你必须做什么,一件一件地实施,然后让整个事情发挥作用。专注于你的目标,暂时停止收集更多信息,花点时间消化你学到的新东西。

    【讨论】:

    • 但是如果使用注释,则不需要问题中提供的 xml 配置。唯一需要的配置是配置 EhCache,而不是哪个实体正在使用缓存。我希望我能消除你的疑虑。
    【解决方案2】:

    据我所知,在 Hibernate 中我们有这样的东西,

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

    这个annotation 还有两个属性regioninclude。要设置大小、有效期和所有这些东西,我什么都不知道。我相信你应该考虑 EhCache 的文档。

    【讨论】:

    • 是否必须使用
    • 当然,这就是你通过注解说的。你应该使用任何一个。使用这两种方式意味着 xml 配置会覆盖注释的东西。
    • okie.. 感谢您的澄清。文章acupof.blogspot.com/2008/01/… ... 提到了不同的东西,它说,两者都必须指定@anotatino 并在ehcache 中配置实体
    • @Vinegar 你确定吗?我的意思是,配置实体缓存是一回事,但配置缓存提供程序是另一回事。一个不排除另一个。
    • 我认为cometta 将我的回答与那篇博文混淆了。所以,彗星,你在另一篇文章中坚持帕斯卡的建议,并澄清你对你已经知道的事情的理解。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-04
    • 2010-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-01
    相关资源
    最近更新 更多