使用注释配置EhCache - Hibernate

3

有没有一种使用注释配置EHcache的方法。

我有一个启用了缓存的Spring/Hibernate项目。目前我正在使用ehcache.xml定义如何缓存实体的配置。

这是我的ehcache.xml文件的样子:

<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="ehcache.xsd"
         updateCheck="true"
         monitoring="autodetect"
         dynamicConfig="true">

    <diskStore path="java.io.tmpdir/ehcache"/>

    <defaultCache
       .
       .
       .
    </defaultCache>

    <cache name="exmaple.model.User" maxEntriesLocalHeap="1000" eternal="false"
           timeToIdleSeconds="120" timeToLiveSeconds="300">
        <persistence strategy="localTempSwap"/>
    </cache>

</ehcache>

我想知道是否可以在@Entity的顶部使用注解来实现相同的效果,而不是使用这个xml文件。

1个回答

2
有两个部分。一个是Spring Cache和Hibernate。它们都提供了注释,告诉方法或实体应该被缓存。
一个例子是来自Spring Cache的`@Cacheable`。
然后,你有`ehcache.xml`。这是用于配置缓存本身的。它不会通过注释来完成。但可以通过编程方式完成。使用构建器使Ehcache 3变得容易。你可以在这里看到一个示例{{link1:here}}。此示例还使用Spring Cache和Hibernate二级缓存。
Ehcache 2(你正在使用的版本)没有构建器。你需要调用`CacheManager.newInstance(Configuration)`,并将任何你想要的配置放入其中。不幸的是,我手头上没有示例。

似乎控制转换为编程,但使用XML似乎比较复杂。话虽如此,我非常感谢您提供的解决方案,因为它向我展示了如何在将来需要时从Java实现缓存。 - Nick Div
我建议再等几天,以防其他人使用注释的方式找到更好的解决方案 :) - Nick Div

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接