原来,我遇到的问题是由于在模型中使用了Joda- Time实例(我使用Jadira的UserType库来映射Joda类型)。
Joda类型保留了各种内部引用(包括对导致年代久远的对象图的年代信息的引用),而Ehcache遍历SizeOfEngine
这些引用导致了我的原始警告。
我没有找到一种干净的方法来配置SizeOfEngine引擎以排除这些引用,但是再一次,我猜想一种更干净的方法是强制Hibernate首先仅将相关信息放入第二级缓存(在我的时间实例中的情况LocalDateTimes
)。
这是我关于OP的发现(使用Hibernate 4.2.15.Final,EhCache 2.6.9和UserType 3.2.0.GA):
首先,我对Hibernate如何在第二级缓存中存储实体存有误解。阅读Lorimer关于真正了解二级缓存和查询缓存的博客条目后,很多事情对我来说更有意义: