清除特定域类的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())