Hibernate检索策略



Hibernate检索策略

类级别的检索策略:

首先要明确的是类级别的懒加载是针对session对象的load方法的,对get方法根本就没有意义。类级别的检索策略就是在class上添加lazy属性即:lazy=true/false

lazy=true,那么load()方法就可以使用懒加载

lazy=false,那么load()方法就不能使用懒加载了,只能使用立即检索。

备注:懒加载要注意一个问题就是谨防出现懒加载异常。

 

Set集合属性的检索策略:(lazyfetchbatch-size)

set集合下面也有lazy属性。(true/false/extra) 通常使用true即默认懒加载开启

set集合下面的fetch属性。(join/select/subselect)默认使用的是join

join:表示的是迫切左外连接(:使用左外链接进行查询且把集合属性进 行初始化)

select:表示自己手写sql外连接之类的

subselect:表示使用子查询(挺好的)作为 where 子句的 in 的条件出现 , 子查询查询所有 的一端的 ID

set集合下面的batch-size:   作用一次初始化 的这一段代理对象的个数

 

举例:Student<——>Teacher双向关联

teacher下就有有一个set集合属性,如果lazy设置为true表示在检索teacher的时候它会使用懒加载机制(即不会立即把set集合下面的学生属性给查出来),犯之亦然。

 

 

使用检索策略的宗旨

不浪费内存(:只拿我们想要的数据)和提高查询效率(:尽量少发HQL语句)

 

 

懒加载机制就是为我们实现这个宗旨的手段和策略。

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值