Hibernate 检索策略之延迟加载和立即加载

本文深入介绍了懒加载(lazy load)的概念及其在不同场景中的应用,包括类级别的查询策略、一对多及多对多关联查询策略等,帮助读者理解如何通过懒加载减少不必要的性能开销。

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

   我们或多或少会听说过延迟加载这个名词,但是今天我们来深入的了解它的用处以及分类

 首先呢,我们先来说一下它的定义

 

延迟加载(lazy load懒加载)是当在真正需要数据(调用真正的属性和方法来处理数据时)时,才执行SQL语句进行查询。避免了无谓的性能开销。

 

延迟加载分类:

 

 01.类级别的查询策略

 

 02.一对多和多对多关联的查询策略

 

 03.多对一关联的查询策略

 

   Lazy:决定关联对象初始化时机

 

  1.类级别的默认加载策略是延迟加载

以下两种方式都表示采用延迟加载策略

  举例:<class name="Dept" table="DEPT" lazy="true"></class>

       <class name="Dept" table="DEPT" ></class>

   2.一对多和多对多关联的查询策略

               <set name="emp" cascade="save-update" inverse="true" lazy="true"><!-- casecade级联:取值 : none save-update delete all -->
               <!-- inverse 默认值 false 主动方 维护关联关系 -->
               <key column="deptid"></key><!-- key:这里是多的一方定义的外键 -->
               <one-to-many class="Emp"/><!-- 多的一方的实体类型 -->
               </set>   

    <set>元素的lazy元素

   

        3.多对一关联查询策略

         <many-to-one name="dept" class="Dept" column="deptid" lazy="proxy"></many-to-one>

        lazy属性

      

 

   

 

转载于:https://www.cnblogs.com/wth1129/p/5773925.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值