清除特定域类的hibernate缓存

时间:2011-07-08 13:58:58

标签: hibernate grails

想象一下,我有以下课程:

class Test {
   String name    
   static mapping = {
      cache true
      version false
}

目标是在数据库级别使用本机sql插入行,这样hibernate就无法识别这些更改。我怎么能不知道这个新行呢?

有类似的东西 - > Test.clearCache?

2 个答案:

答案 0 :(得分:7)

这个答案有点旧......不推荐使用evict方法......你可以使用

sessionFactory.cache.evictEntityRegion(Class.name)

这对我有用...只是谷歌上课,你会找到所有的方法......

答案 1 :(得分:6)

虽然这是一种弃用的方式,但它更短,仍然有效。

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

文档为here,请查看Cache的最新信息。