database - Grails:从外部加载数据后更新 hibernate

标签 database hibernate grails

我有一个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/

相关文章:

java - 基于数据库的报告有哪些脚本框架?

mysql - 值范围内记录的计数和百分比

java - hibernate 错误 : Validation failed for query for method public abstract java. util.List

java - Spring - 使用@Service和@Repository注释同一个类

grails - 当一个的键是另一个的ID时,如何从旧数据库中将一个映射到一个关系

mysql - Mysql UUID_SHORT() 是否与 UUID() 相当

sql - 显示包含特定表的数据库的所有名称

java - hibernate 看不到二传手

grails - Grails-在重定向参数中发送对象列表

grails - 使用 grails 可搜索插件的 apache lucene 索引文件的默认路径在哪里?