清除特定域类的hibernate缓存

清除特定域类的hibernate缓存,hibernate,grails,Hibernate,Grails,假设我有以下课程: class Test { String name static mapping = { cache true version false } 目标是在数据库级别使用本机sql插入行,以便hibernate无法识别这些更改。我怎样才能通知银行这一新的行 是否有类似->Test.clearCache的方法?虽然这是一种不推荐的方法,但它较短并且仍然有效 def sessionFactory // inject Hibernate se

假设我有以下课程:

class Test {
   String name    
   static mapping = {
      cache true
      version false
}
目标是在数据库级别使用本机sql插入行,以便hibernate无法识别这些更改。我怎样才能通知银行这一新的行


是否有类似->Test.clearCache的方法?

虽然这是一种不推荐的方法,但它较短并且仍然有效

def sessionFactory // inject Hibernate sessionFactory
sessionFactory.evict(clazz, id)
// or evict all class instances:
sessionFactory.evict(clazz)

文档是,请参阅它以了解有关
缓存的最新方式

此答案有点陈旧。。。已弃用逐出方法。。。你可以用

sessionFactory.cache.evictEntityRegion(Class.name)

这对我有用。。。只需搜索该类,您就会找到所有方法…

sessionFactory.cache.executeEntity(entity.getClass(),entity.ident())