在我的 grails 应用程序中,用户永远不会更改我的某些域类。
但是,有时需要进行一些维护工作,管理员应该能够不时创建/编辑几个实例(假设每年两次)。
我想为这些域类设置只读二级缓存策略(静态映射= {缓存使用:'只读'}
)并且我希望能够“禁用”(在非常特殊的情况下)只读策略,以便通过 Grails 脚手架编辑 View 更新某些实例。
这可能吗?你建议我做什么?
编辑:我正在实现的解决方案是 Pascal 和 Burt 答案的混合(请参阅评论)。这两个答案都很棒并且很有帮助。所以我在选择接受的答案时遇到了两难!不管怎样,谢谢你。
最佳答案
这可能是可能的,但很可能不是微不足道的。我会使用 groovy.sql.Sql 直接插入。您失去了验证,但您可以创建实例并验证它们,但不能调用 save()。如果没问题的话就进行 SQL 插入,例如
def thing = new Thing(params)
if (thing.validate()) {
new Sql(dataSource).executeInsert(
"insert into thing(name) values(?)", [params.name])
}
else {
// report validation error
}
关于hibernate - 如何在 Grails 中暂时禁用只读二级缓存 hibernate 策略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2238695/