Grails 3.0.9。如何测试Hibernate二级缓存?

时间:2015-11-01 08:54:36

标签: hibernate grails grails-3.0

如何测试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?

1 个答案:

答案 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

希望这有帮助!感谢