如何在persistence.xml文件中禁用ehcache

时间:2011-10-08 11:51:03

标签: hibernate spring web-applications ehcache second-level-cache

全部, 是否可以在我的持久性xml文件中禁用二级缓存? 我有一个使用ehcache的Spring + Hibernate + JPA配置。在我的persistence.xml文件中,我有这个条目:

<property name="hibernate.cache.use_second_level_cache" value="false"/>

但这似乎不起作用,我仍然看到当我的应用程序运行时,加载的实体数量不断增加。我使用以下方法获取统计信息:

EntityManagerFactoryInfo emfi = (EntityManagerFactoryInfo) entityManagerFactory;
EntityManagerFactory emf = emfi.getNativeEntityManagerFactory();
EntityManagerFactoryImpl empImpl = (EntityManagerFactoryImpl)emf;
log.debug(empImpl.getSessionFactory().getStatistics());

请帮忙。

1 个答案:

答案 0 :(得分:3)

您正在查看的统计信息是Hibernate会话缓存(第1级缓存)。您的二级缓存(ehcache)已禁用。你经历的是正常行为。

编辑:

启用ehcache后,您会找到以下日志条目:

[#|...|INFO|sun-appserver2.1|org.hibernate.cfg.SettingsFactory|...|Second-level cache: enabled|#]
[#|...|INFO|sun-appserver2.1|org.hibernate.cfg.SettingsFactory|...|Cache provider: org.hibernate.cache.EhCacheProvider|#]

(如果您启用了软件包的日志记录 - 缓存提供程序可能会有所不同,例如net.sf.ehcache.hibernate.EhCacheRegionFactory - 不知道您使用的是什么)