【发布时间】:2015-07-08 23:18:50
【问题描述】:
我有这个 Ehcache XML 配置:
<ehcache>
<defaultCache
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="false"
diskSpoolBufferSizeMB="30"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU"
/>
</ehcache>
另外,我有一些包含实体的包(大约 150 个)。如果我在 tomcat 服务器上部署我的应用程序,日志中有很多 WARN 消息:
2015-04-29 11:59:02,712 [RMI TCP 连接 (3)-127.0.0.1] 警告 org.hibernate.cache.ehcache.AbstractEhcacheRegionFactory - HHH020003: 找不到名为的缓存的特定 ehcache 配置 [com.company.project.entity.package.MyEntity];使用默认值。
我可以为每个实体编写配置 -
<cache name="com.company.project.entity.package.MyEntity"
maxEntriesLocalHeap="50"
eternal="false"
overflowToDisk="false"
timeToLiveSeconds="120">
<persistence strategy="localTempSwap"/>
</cache>
但是这样一来,我的配置文件就变得太大了(1600 行)。我认为还有另一种方法可以为每个实体设置默认配置并终止警告消息,但我不知道该怎么做。如果有人知道,请帮忙。非常感谢。
【问题讨论】:
-
您是否见过这个问题,它似乎描述了与您看到的相同的警告? stackoverflow.com/questions/19280073/…
-
两种解决方案,1/ 杀死日志(使用日志配置)或 2/ 为每个实体定义一个 ehcache 配置
-
警告
HHH020003被提及here,您可以尝试提到的解决方案(在persistence.xml中设置<property name="hibernate.cache.region_prefix" value=""/>)。 -
这个星期一我会努力去做的。
-
@Bobulous,我添加了 UpdateTimestampsCache(用于休眠 4.3.8 的 org.hibernate.cache.spi.UpdateTimestampsCache),但它什么也没做(我不明白,ehcache.org/generated/2.9.0/html/ehc-all/index.html#page/… 怎么能做某事我的问题)。
标签: java hibernate logging configuration ehcache