【问题标题】:clear hibernate cache of specific domain class清除特定域类的休眠缓存
【发布时间】:2011-10-01 07:35:34
【问题描述】:

想象一下我有以下课程:

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

目标是在数据库级别使用本机 sql 插入行,这样 hibernate 就不会识别这些更改。我怎样才能通知休眠这些新行?

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

【问题讨论】:

    标签: hibernate grails


    【解决方案1】:

    这个答案有点老了... evict 方法已弃用...您可以使用

    sessionFactory.cache.evictEntityRegion(Class.name)
    

    这对我有用...只需谷歌该课程,您就会找到所有方法...

    【讨论】:

    • sessionFactory.cache.evictEntity(entity.getClass(), entity.ident())
    【解决方案2】:

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

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

    文档是here,请查看Cache 的最新方式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-05
      • 1970-01-01
      • 2011-05-25
      • 2012-10-12
      • 1970-01-01
      • 2012-02-05
      • 1970-01-01
      • 2016-08-13
      相关资源
      最近更新 更多