Hibernate 检索策略 lazy fetch batch-size

set 的 lazy 属性:

  1. 1-n 或 n-n 的集合属性默认使用懒加载检索策略
  2. 可以通过设置 set 的 lazy 属性来修改默认的检索策略. 默认为 true,并不建议设置为 false.
  3. lazy 还可以设置为 extra. 增强的延迟检索. 该取值会尽可能的延迟集合初始化的时机!

set 元素的 batch-size 属性:

  1. 设定一次初始化 set 集合的数量.

set 集合的 fetch 属性:

  1. 确定初始化 orders 集合的方式.
  2. 默认值为 select. 通过正常的方式来初始化 set 元素
  3. 可以取值为 subselect. 通过子查询的方式来初始化所有的 set 集合. 子查询作为 where 子句的 in 的条件出现, 子查询查询所有 1 的一端的 ID. 此时 lazy 有效.但 batch-size 失效.
  4. 若取值为 join. 则
  5. 在加载 1 的一端的对象时, 使用迫切左外连接(使用左外链接进行查询, 且把集合属性进行初始化)的方式检索 n 的一端的集合属性
  6. 忽略 lazy 属性.
  7. HQL 查询忽略 fetch=join 的取值

其他的点:

  1. lazy 取值为 proxy 和 false 分别代表对应对应的属性采用延迟检索和立即检索
  2. fetch 取值为 join, 表示使用迫切左外连接的方式初始化 n 关联的 1 的一端的属性忽略 lazy 属性.
  3. batch-size, 该属性需要设置在 1 那一端的 class 元素中:
    < class name=”Customer” table=”CUSTOMERS” lazy=”true” batch-size=”5”>
    作用: 一次初始化 1 的这一段代理对象的个数.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值