hibernate_抓取策略-检索配置

本文详细介绍了ORM中立即检索与延迟检索的区别,包括它们的基本概念、应用场景及如何在类级别和关联级别进行配置。同时,还深入探讨了不同检索方式对SQL查询的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 立即检索和延迟检索的区别
 <1>立即检索
当执行某行代码的时候,马上发出SQL语句进行查询。典型的就是get()方法。
 <2>延迟检索
当执行某行代码的时候,不会马上发出SQL语句进行查询。典型的就是load()方法。

2. 类级别检索和关联级别检索
 <1>类级别的检索
在class标签上配置lazy。
 <2>关联级别的检索

<set>/<many-to-one>上面的lazy

3. 配置
从一的一方关联多的一方:

* <set>
* fetch:控制sql语句的类型
* join      :发送迫切左外连接的SQL查询关联对象.fetch=”join”那么lazy被忽略了.
* select        :默认值,发送多条SQL查询关联对象.
* subselect :发送子查询查询关联对象.(需要使用Query接口测试)

* lazy:控制关联对象的检索是否采用延迟.
* true      :默认值, 查询关联对象的时候使用延迟检索
* false     :查询关联对象的时候不使用延迟检索.
* extra     :及其懒惰.

***** 如果fetch是join的情况,lazy属性将会忽略.

从多的一方关联一的一方:

* <many-to-one>
* fetch:控制SQL语句发送格式
* join      :发送一个迫切左外连接查询关联对象.fetch=”join”,lay属性会被忽略.
* select        :发送多条SQL检索关联对象.
* lazy:关联对象检索的时候,是否采用延迟
* false     :不延迟
* proxy     :使用代理.检索订单额时候,是否马上检索客户 由Customer对象的映射文件中<class>上lazy属性来决定.
* no-proxy  :不使用代理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值