【发布时间】:2011-10-01 07:35:34
【问题描述】:
想象一下我有以下课程:
class Test {
String name
static mapping = {
cache true
version false
}
目标是在数据库级别使用本机 sql 插入行,这样 hibernate 就不会识别这些更改。我怎样才能通知休眠这些新行?
有没有类似 -> Test.clearCache 的东西?
【问题讨论】:
想象一下我有以下课程:
class Test {
String name
static mapping = {
cache true
version false
}
目标是在数据库级别使用本机 sql 插入行,这样 hibernate 就不会识别这些更改。我怎样才能通知休眠这些新行?
有没有类似 -> Test.clearCache 的东西?
【问题讨论】:
这个答案有点老了... evict 方法已弃用...您可以使用
sessionFactory.cache.evictEntityRegion(Class.name)
这对我有用...只需谷歌该课程,您就会找到所有方法...
【讨论】:
虽然这是一种已弃用的方式,但它更短且仍然有效。
def sessionFactory // inject Hibernate sessionFactory
sessionFactory.evict(clazz, id)
// or evict all class instances:
sessionFactory.evict(clazz)
文档是here,请查看Cache 的最新方式。
【讨论】: