我有一个grails应用程序。我想将数据加载到底层数据库中,特别是使用grails,perl外部的东西。我知道在外部数据加载后我必须更新hibernate序列,否则在grails中的下一个create对象中,hibernate会抛出异常;但还有什么我需要更新的吗?例如,我是否必须清除hibernate缓存?这似乎是一个非常普遍的问题,但是在grails文档中没有对它进行过讨论。感谢。
答案 0 :(得分:0)
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)