3
當您運行JPQL更新或刪除查詢時,Hibernate是否足夠智能以使更改的實體的二級高速緩存失效?運行JPQL更新語句時Hibernate二級高速緩存是否失效
人爲的例子:
你有JPQL:
update Product p set p.status = 'S' where p.name like 'Monitor%'
如果您目前有產品時語句運行的2級高速緩存,將休眠無效的所有產品從緩存或不它對緩存沒有任何幫助,二級緩存中的產品現在無效了?
僅供參考...我使用JBoss 5.1與Hibernate和JBossCache的
有趣。我認爲你可以檢查 - 設置showSql = true(或者如果不使用JPA,在控制檯上顯示sql輸出的hibernate屬性),看看hibernate是否從數據庫中再次獲取一個剛剛用hql更新的實體。 – Bozho 2010-01-08 06:52:46
這隻會告訴你它是否將這些項目重新加載到緩存中,我不認爲它會這樣做。它不會告訴你的是,如果它使緩存失效,那麼該實體的所有實例將不得不從數據庫重新加載。我想我只需要做一個測試並找出答案。我希望這裏有人會有一個快速的答案。 – larf311 2010-01-08 17:14:56