2012-03-21 24 views
1

我有一個grails應用程序。我想用grails,perl外部的東西將數據加載到底層數據庫中,具體來說。我知道我必須在外部數據加載後更新hibernate序列,否則在grails中的下一個創建對象中,hibernate會拋出異常;但還有什麼我需要更新?例如,我是否必須清除休眠緩存?這似乎是一個非常普遍的問題,但Grails文檔中沒有對此進行討論。謝謝。Grails:在外部加載數據後更新休眠

回答

0

發現這個 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逐出()整個班級的

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

或單個實例

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