【问题标题】:Grails: updating hibernate after externally loading dataGrails:在外部加载数据后更新休眠
【发布时间】:2012-03-21 19:46:06
【问题描述】:

我有一个 grails 应用程序。我想用 grails 外部的东西,特别是 perl 将数据加载到底层数据库中。我知道我必须在外部数据加载后更新休眠序列,否则在 grails 中的下一个创建对象时,休眠会引发异常;但还有什么我需要更新的吗?例如,我是否必须清除休眠缓存?这似乎是一个非常普遍的问题,但在 grails 文档中没有讨论它。谢谢。

【问题讨论】:

    标签: database hibernate grails


    【解决方案1】:

    找到这个 http://grails.1312388.n4.nabble.com/Accessing-the-2nd-level-cache-to-allow-it-to-be-cleared-via-a-controller-or-service-td1390985.html

    Hibernate 有这方面的 API。您可以通过 sessionFactory.getQueryCache() 获取查询缓存并使用

    清除它
       sessionFactory.queryCache.clear() 
    

    您可以使用其完整的类名访问域类的缓存,例如

       def cache = sessionFactory.getSecondLevelCacheRegion('com.foo.bar.Book') 
    

    并通过

    清除它
       sessionFactory.getSecondLevelCacheRegion('com.foo.bar.Book').clear() 
    

    你也可以在 sessionFactory 上为整个类调用 evict()

       sessionFactory.evict(com.foo.bar.Book) 
    

    或对于单个实例

       sessionFactory.evict(com.foo.bar.Book, 42) 
    

    【讨论】:

      猜你喜欢
      • 2016-10-21
      • 1970-01-01
      • 2013-03-11
      • 1970-01-01
      • 2023-04-10
      • 1970-01-01
      • 2014-02-02
      • 2017-03-18
      • 1970-01-01
      相关资源
      最近更新 更多