[英]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.