hibernate 懒加载和一级缓存的关系。

习题具体一点儿,谢谢了。... 习题具体一点儿,谢谢了。 展开
 我来答
pili飞飞
推荐于2016-07-05 · 超过16用户采纳过TA的回答
知道答主
回答量:41
采纳率:0%
帮助的人:38.9万
展开全部
3.Hibernate高级特性以及性能优化
1)延迟加载 : 当程序执行getter方法获取时,才发送sql语句加载数据.
延迟加载给程序带来好处,但是要避免session过早关闭问题
a. load()和get()两个方法区别
load()采用延迟加载机制,返回的是一个proxy代理对象
get()没有采用延迟加载,返回的是一个对象实例
b.Hibernate.initialize(user)
可以强制user对象实例化
c.hbm映射描述文件中,<class>,<property>,<set>等元素
都可以使用lazy属性,默认lazy="true",启用延迟加载
lazy="false"禁用延迟加载.
2)缓存机制
Hibernate每次查询先去缓存中查找,没有才去数据库查询.
a.一级缓存
Session级别的缓存,缓存load,get出来的单个对象.默认开启.
使陵轮竖用同一个Session对象多次查询同一个User对象,
只会发送一次SQL取数据库获桐派取
b.二级缓存
SessionFactory级别的缓存.默认情尺大况是关闭.
(1)首先在hibernate.cfg.xml中指定EhCache缓存策略
<property name="hibernate.cache.provider_class">
org.hibernate.cache.EhCacheProvider
</property>
(2)在src下添加ehcache.xml配置文件
(3)在User.hbm.xml中添加<cache/>定义
<cache usage="read-only"/> ,如果涉及更新,使用read-write
c.查询缓存
缓存HQL查询结果集,对相同的HQL查询语句,只去数据库查询一次.
Storm代理
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I... 点击进入详情页
本回答由Storm代理提供
ymiqplgao
2011-10-21 · TA获得超过646个赞
知道小有建树答主
回答量:512
采纳率:0%
帮助的人:392万
展开全部
lazy load就是当第一需要用到数据的时候才去拿数据,才发SQL,之前的SQL在缓存中存储的。
Session的缓存是内置的,不可被卸载,是Hiberante的第一级缓扮裂薯存。

详源碰细的找本Hibernate的书看看吧。东西很多,一时半会也说不清楚。

延迟加载又分为类级的和属性厅者级的,还要区分。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式