gpt4 book ai didi

java - 没有 ehcache.xml 的 Hibernate 二级缓存

转载 作者:行者123 更新时间:2023-11-30 03:32:56 26 4
gpt4 key购买 nike

我正在尝试将 Ehcache 配置为 hibernate 二级缓存,到目前为止,我找到的所有示例都指示您在类路径中创建一个 ehcache.xml 文件,例如:

<ehcache updateCheck="false">

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

<defaultCache maxElementsInMemory="10000" eternal="false"
statistics="true" timeToIdleSeconds="120" timeToLiveSeconds="120"
overflowToDisk="true" diskPersistent="false"
diskExpiryThreadIntervalSeconds="120" memoryStoreEvictionPolicy="LRU" />

<cache name="com.yourcompany.CachedEntity" eternal="true" maxElementsInMemory="1000" />

</ehcache>

然后按如下方式配置Hibernate:

<property name="hibernate.cache.region.factory_class" value="org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory"/>
<property name="net.sf.ehcache.configurationResourceName" value="/ehcache.xml" />
<property name="hibernate.cache.use_query_cache" value="true" />
<property name="hibernate.cache.use_second_level_cache" value="true" />

在我的工作场所,我们被鼓励尽可能使用 java 配置并避免使用 XML 配置文件。如果您能提供有关如何实现这一目标的指示,我将不胜感激。

最佳答案

stackoverflow问题using ehcache in spring 4 without xmllearningJava 提及展示了如何在 java 中配置 ehcache CacheManager,但您仍然需要一种方法来告诉 hibernate 它应该使用您的 java 配置 CacheManager

一种可能的方法是通过 hibernate.cache.region.factory_class 属性配置自定义 ehcache 区域工厂。如果你看看 SingletonEhCacheRegionFactory 的实现您会发现更换您自己的 CacheManager 非常容易。

我怀疑缓存的 java 配置和 xml 配置之间的映射非常简单,但是如果 ehcache 在解析 xml 配置时在幕后执行一些“神奇的东西”,那么正确获取 java 配置的工作就是可能有点棘手。

关于java - 没有 ehcache.xml 的 Hibernate 二级缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28591703/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com