hibernate里的lazy=“false“是干什么用的

 我来答
Rosen326
推荐于2016-04-08 · TA获得超过633个赞
知道小有建树答主
回答量:279
采纳率:100%
帮助的人:235万
展开全部
lazy是延时加载,比方说一个对象A中包含了另一个对象B的set集合,在hibernate的映射文件中就会配置set集合对应关系。如果配置了延时加载=true,就是延时加载,这时候在A对象被查询出来时,不会同时去查询B对象,你获取的Set集合应该是空的或者是到使用的时候才去查询(可以看一下后台的sql)。因为你配置的是延时,如果是=false,查询A对象时,A对象中Set集合是有B对象的。
这个主要有的时候优化程序效率会用。
best_hrs
2011-12-06 · TA获得超过251个赞
知道答主
回答量:61
采纳率:0%
帮助的人:34.9万
展开全部
lazy这个属性指的是懒加载,也就是说延迟加载。
写在属性上面指的是属性延迟加载,写到类上面是指类延迟加载。
lazy=“false“ 指的是延迟加载。也就是不即时加载,但你用到了这个的时候再到数据库里面去取
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
firseve
2011-12-07 · TA获得超过356个赞
知道小有建树答主
回答量:106
采纳率:100%
帮助的人:41.7万
展开全部
延迟加载
简单的说有个实体是user 里面有个Address实体类 那么你使用hibernate取user的时候hibernate不会使用select * from user left join address on user.address.id = address.id where user.id=? 这种方式帮你把address中的数据提取出来
只有当你用到address中的数据时候 hibernate才会再次查询address ,select * from address where address.id = ? (前面取到的user表中的address的id)
好处就是减少不必要的数据查询和无用数据的传输,即使通一台机器 查询数据库获取一堆没用的数据也是没有必要的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式