gpt4 book ai didi

hibernate - 带有 Cache-Ehcache 插件的 Grails - 二级缓存

转载 作者:行者123 更新时间:2023-12-02 15:29:52 28 4
gpt4 key购买 nike

我正在尝试用于 grails 的 cache-ehcache 插件,它似乎很容易设置和使用!
但是,如果我正确阅读了以下文档,则应该可以工作并返回缓存结果:

数据源.groovy:

hibernate {
cache.use_second_level_cache = true
cache.use_query_cache = true
cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory'
}

配置.groovy:
grails.cache.config = {
domain {
name 'com.mycompany.User'
}
}

我的课:
User.findByMyField("myVal", [cache:true])

但这对我不起作用,除非我还将以下内容添加到 User.groovy
static mapping = {
cache true
}

我的印象是不需要对用户进行更改,因为这是 Config.groovy 中的“域{}” block 所定义的,但如果没有它,我就无法让它工作。

我真的想避免修改 User.class 因为它用于多个我不想受到影响的项目!

任何建议,将不胜感激!

最佳答案

domain DSL中的方法只是一个别名,使配置更直观,但不影响域类是否缓存,只影响启用时如何缓存。您仍然需要使用 cache.use_second_level_cache = true 启用整体缓存。 ,并在域类中配置缓存。

Hibernate 中的二级缓存是基于接口(interface)的,大部分实际工作由您选择的实现完成。所以你需要在 Hibernate 中开始工作,而 GORM 使用 cache mapping 中的方法 block 来执行此操作,但是您需要执行特定于实现的配置来调整缓存,这就是您需要直接或间接使用 Ehcache API 的地方,例如通过这个 DSL。

关于hibernate - 带有 Cache-Ehcache 插件的 Grails - 二级缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21276047/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com