hibernate的延迟加载和关联数据抓取方式

hibernate延迟加载
1、为了提高数据库的执行效率,只有在需要数据的时候才从数据库中查询加载数据
如果session关闭,那么没有加载的数据就会无法进行加载。

2、延迟加载分类
1、实体类别的加载
在实体类映射文件的Class标签中加入lazy=“true|false”属性
此延迟加载只使用与session.load(类名.class,id)
2、集合属性的延迟加载
在实体类映射文件的set标签中加入lazy=“true|false|extra”属性
当lazy=“extra”的时候是延迟的数据中需要什么就加载什么数据
如需要name属性,调用getName()时就之后加载name属性
3、<many-to-one lazy="proxy|no-proxy|false">
当lazy=“"proxy”时和true前面一样
当lazy=“no-proxy”时需要在编译时加强字节码,否则无效
4、普通属性的验证加载
<property lazy="false|true">
基本没用
hibernate数据抓取
1、<many-to-one fetch="select|join">
默认select 获取关联数据的时候单独发送SQL语句
fetch=join 通过左连接查询获取关联数据
2、<one-to-one fetch="join|select"> 
和上面一样
3、<set fetch="select|subselect|join">
fetch= subselect 通过自查询获取关联数据
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值