我有一个grails应用程序。我想使用grails外部的东西(特别是perl)将数据加载到基础数据库中。我知道我必须在外部数据加载后更新休眠序列,否则在下一个grails中的创建对象上,休眠会抛出异常;但是我还需要更新吗?例如,是否需要清除休眠缓存?这似乎是一个非常普遍的问题,但是grails文档中没有对此进行讨论。谢谢。
最佳答案
找到了
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)
关于database - Grails:从外部加载数据后更新 hibernate ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9811758/