全部, 是否可以在我的持久性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());
请帮忙。
答案 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
- 不知道您使用的是什么)