hibernate ehcache禁用
时间: 2023-06-26 20:05:02 浏览: 121
spring3 hibernate4 ehcache实例
5星 · 资源好评率100%
要禁用 Hibernate 的 Ehcache 缓存,可以采取以下几种方法:
1. 在 Hibernate 的配置文件中,将 Ehcache 缓存配置注释掉或者删除。例如:
```
<!--
<property name="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</property>
<property name="hibernate.cache.use_second_level_cache">true</property>
<property name="hibernate.cache.use_query_cache">true</property>
-->
```
2. 在 Hibernate 的 SessionFactory 中,使用 setCacheMode() 方法将缓存模式设置为 CacheMode.IGNORE,例如:
```
Configuration cfg = new Configuration().configure();
SessionFactory sessionFactory = cfg.buildSessionFactory();
sessionFactory.getCache().evictAllRegions();
sessionFactory.getCache().getQueryCache().clear();
sessionFactory.getCache().getSecondLevelCacheStatistics("com.example.EntityName").clear();
sessionFactory.getCache().getNaturalIdCacheStatistics("com.example.EntityName").clear();
sessionFactory.getCache().getEntityStatistics("com.example.EntityName").clear();
sessionFactory.getCache().getQueryStatistics("com.example.EntityName").clear();
sessionFactory.getCache().getTimestampsCache().clear();
sessionFactory.getCache().evictEntityData("com.example.EntityName");
sessionFactory.getCache().evictCollectionData("com.example.EntityName.collectionName");
sessionFactory.getCache().evictQueryRegions();
sessionFactory.getCache().evictDefaultQueryRegion();
sessionFactory.getCache().evictNaturalIdRegions();
sessionFactory.getCache().evictEntityRegions();
sessionFactory.getCache().evictCollectionRegions();
sessionFactory.getCache().evictQueryRegions();
sessionFactory.getCache().evictDefaultQueryRegion();
sessionFactory.getCache().evictNaturalIdRegions();
sessionFactory.getCache().evictEntityRegions();
sessionFactory.getCache().evictCollectionRegions();
sessionFactory.getCache().evictQueryRegions();
sessionFactory.getCache().evictDefaultQueryRegion();
sessionFactory.getCache().evictNaturalIdRegions();
// 禁用缓存
sessionFactory.getCache().setCacheMode(CacheMode.IGNORE);
```
3. 在 Hibernate 的配置文件或者 SessionFactory 中,将 Ehcache 缓存相关的属性设置为 false,例如:
```
<property name="hibernate.cache.use_second_level_cache">false</property>
<property name="hibernate.cache.use_query_cache">false</property>
```
或者
```
Configuration cfg = new Configuration().configure();
cfg.setProperty("hibernate.cache.use_second_level_cache", "false");
cfg.setProperty("hibernate.cache.use_query_cache", "false");
SessionFactory sessionFactory = cfg.buildSessionFactory();
```
阅读全文