如何测试Hibernate二级缓存?
我尝试在application.yml中配置它:
hibernate:
cache:
use_second_level_cache: true
provider_class: net.sf.ehcache.hibernate.EhCacheProvider
region:
factory_class: org.hibernate.cache.ehcache.EhCacheRegionFactory
flush:
mode: 'commit'
跟踪选项dataSource {
...
logSql = true
}
,它总是显示执行SQL?或者还包括来自二级缓存的摘录,而不执行SQL?
答案 0 :(得分:0)
我猜您可以激活org.hibernate.cache category来记录所有二级缓存活动。
为此,请编辑Config.groovy文件。找到以下行:
hibernate = "off"
并将其替换为:
hibernate.cache = "trace,stdout"
你也可以看一下grails FAQ。
编辑:使用统计信息API
要浏览二级或查询缓存区域的内容,请使用Statistics API:
Map cacheEntries = sessionFactory.getStatistics()
.getSecondLevelCacheStatistics(regionName)
.getEntries();
您需要启用统计信息,并可选择强制Hibernate以更易读的格式保留缓存条目:
hibernate.generate_statistics true
hibernate.cache.use_structured_entries true
希望这有帮助!感谢