我有一个配置为使用JPA和Hibernate的大型Java应用程序。据推测,它还配置为对实体和查询缓存都使用ehcaching。但是,我已打开sql日志记录,并且没有实体被缓存。所有实体查询都在每个请求上发生。
如何在运行时确定它是否甚至正在运行ehcache,以及它是否认为实体应该可缓存?
我没有写这个应用程序,所以在这里有些卡住了。
它使用声明进行类的缓存。
它正确地使用了Hibernate的所有其他声明来执行读/写操作。
最佳答案
尝试这样的事情:
List<CacheManager> tempManagers = CacheManager.ALL_CACHE_MANAGERS;
System.out.println("# of CMs : " + tempManagers.size());
for (CacheManager tempCM : tempManagers) {
System.out.println("Got: " + tempCM.getName());
String[] cacheNames = tempCM.getCacheNames();
for (int i = 0; i < cacheNames.length; i++) {
String cacheName = cacheNames[i];
System.out.println(cacheName+" - "+ tempCM.getEhcache(cacheName).getStatistics().toString());
}
}