[英]explain Hibernate query cache
我閱讀了http://www.javalobby.org/java/forums/t48846.html中的文章,該文章解釋了Hibernate Query Cache,但我無法完全理解它的工作原理。
如文章所述:
Query query = session.createQuery("from Person as p where p.parent.id=? and p.firstName=?");
query.setInt(0, Integer.valueOf(1));
query.setString(1, "Joey");
query.setCacheable(true);
List l = query.list();
查詢緩存的工作原理如下:
*----------------------------------------------------------------------------------------*
| Query Cache |
|----------------------------------------------------------------------------------------|
| ["from Person as p where p.parent.id=? and p.firstName=?", [ 1 , "Joey"] ] -> [ 2 ] ] |
*----------------------------------------------------------------------------------------*
查詢和作為該查詢的參數提供的值的組合用作鍵,該值是該查詢的標識符列表。
問題1 :這是什么標識符 ? 它們是查詢結果中實體的ID嗎?
問題2: Hibernate的文件說
例如,如果您緩存針對對象的查詢結果,則Hibernate需要跟蹤是否已對該對象進行任何更改,並相應地使緩存無效
如果問題1的答案為是(它們是查詢結果中實體的ID),這是否意味着上次更新表時緩存的保留時間戳,並在需要時決定刷新緩存?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.