首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Hibernate什么时候从二级缓存读取,什么时候从DB读取?

Hibernate什么时候从二级缓存读取,什么时候从DB读取?
EN

Stack Overflow用户
提问于 2008-10-23 10:01:27
回答 2查看 1.8K关注 0票数 1

据我所知,Hibernate让您配置要存储在二级缓存中的实体和集合。

Hibernate何时尝试从二级缓存中读取这些缓存的实体,以及何时命中DB?当通过调用Sesssion.get()加载实体和初始化代理(包括集合)时,Hibernate是否只从二级缓存读取?Hibernate在执行HQL或Criteria查询时会命中二级缓存吗?

例如?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-21 07:23:32

二级缓存仅包含按id的实体,因此当按id检索实体时(即get、load或隐式解析代理),二级缓存可能会被访问。任何其他查询(hal,criteria)都将绕过缓存并命中DB --至少在没有使用查询缓存的情况下。

票数 4
EN

Stack Overflow用户

发布于 2008-10-23 10:15:56

(注意:回答这类问题的最简单方法是打开show_sql并查看Hib生成的查询。)

有时查询只返回记录的PK(例如,用于迭代查询),然后Hib可以使用缓存。

在检索链接对象时,也可以使用缓存。

不过,我不能在这里给你确切的规则。我也怀疑答案取决于所使用的方言的能力。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/229173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档