`

mybatis延迟加载(lazy)配置生效的陷阱

 
阅读更多

一些刚接触mybatis的人如果之前用过hibernate,总想试试它的延迟加载功能,其实在实际开发中我从来没有使用过这个功能,因为没有必要。

但是mybatis的延迟加载的配置确存在一定的陷阱,从mybatis官方的文档及例子中也没有找到完整的配置说明。

 

废话少说了,正题,要使延迟加载生效必须配置下面两个属性:

    <settings>
        <setting name="lazyLoadingEnabled" value="true"/>
        <setting name="aggressiveLazyLoading" value="false"/>
    </settings>

 

如果你只配了lazyLoadingEnabled属性,那就不行了。

 

官方对这两个属性的解释是:

lazyLoadingEnabled 全局启用或禁用延迟加载。当禁用时,所有关联对象都会即时加载。默认:true
aggressiveLazyLoading 当启用时,有延迟加载属性的对象在被调用时将会完全加载任意属性。否则,每种属性将会按需要加载。默认:true

分享到:
评论

相关推荐

    mybatis延迟加载样例

    在实际开发中,为了提高性能和减少内存消耗,MyBatis提供了延迟加载(Lazy Loading)功能。延迟加载允许我们在真正需要数据时才去加载关联的对象,而不是在查询主对象时一次性加载所有关联数据。 标题中的“mybatis...

    Mybatis延迟加载和缓存

    本篇将深入探讨 Mybatis 的两个重要特性:延迟加载(Lazy Loading)和缓存机制。 ### 延迟加载(Lazy Loading) 延迟加载是一种优化策略,它的核心思想是不立即加载所有数据,而是在实际需要时才进行加载。在 ...

    Mybatis延迟加载的实现方式

    Mybatis延迟加载的实现方式 Mybatis延迟加载是指在进行表的关联查询时,按照设置延迟规则推迟对关联对象的select查询。延迟加载可以减少数据库...通过配置mybatis-config.xml文件和使用@Lazy注解,可以实现延迟加载。

    MyBatis懒加载(延迟加载)

    在MyBatis中,懒加载(延迟加载)是一种优化策略,用于提高应用程序的性能。懒加载是指当真正需要数据时,而不是在加载实体对象时立即加载关联数据,这种机制可以避免不必要的数据库查询,从而减少资源消耗。 标题...

    15MyBatis延迟加载.md

    15MyBatis延迟加载.md

    Mybatis延迟加载和缓存(基于XML配置).zip

    本知识点主要探讨Mybatis中的两个重要特性:延迟加载和缓存,以及如何在XML配置文件中进行相关设置。 **一、延迟加载(Lazy Loading)** 延迟加载是一种优化策略,它的核心思想是“按需加载”。在Mybatis中,延迟...

    mybatis中延迟加载Lazy策略的方法

    MyBatis中延迟加载Lazy策略的方法 MyBatis中延迟加载Lazy策略是一个非常重要的概念,它可以帮助开发者提高数据库查询的效率和性能。在MyBatis中,延迟加载Lazy策略的方法主要有两种:一对一延迟加载和一对多延迟...

    mybatis教程之延迟加载详解

    在本篇文章中,我们将详细介绍MyBatis延迟加载的意义、配置和实现。 延迟加载的意义 在进行数据查询时,为了提高数据库查询性能,尽量使用单表查询,因为单表查询比多表关联查询速度要快。如果查询单表就可以满足...

    spring boot中配置mybatis热加载相关文件

    为了解决这个问题,我们可以配置MyBatis实现热加载,即在XML文件改动后无需重启应用就能自动感知并更新。本文将详细讲解如何在Spring Boot中配置MyBatis的XML资源文件实现热加载,并介绍相关文件的作用。 首先,...

    mybatis3--延迟加载,缓存

    在 MyBatis 中,延迟加载(Lazy Loading)和缓存是两个非常重要的特性,它们对于提升应用程序性能和减少数据库访问有着显著作用。 **延迟加载(Lazy Loading)** 延迟加载是一种设计模式,它在对象被首次请求时才...

    spring boot中配置mybatis热加载.zip

    下面将详细介绍如何在Spring Boot中配置MyBatis以实现XML资源文件的热加载。 首先,我们需要在Spring Boot项目的`pom.xml`或`build.gradle`文件中添加MyBatis和其Spring Boot starter的依赖。如果是Maven项目,添加...

    MyBatis热加载配置所需要的文件

    在开发过程中,为了提高效率,开发者常常需要实现热加载(hot reload)功能,使得修改了MyBatis的相关配置或Mapper文件后,无需重启应用就能立即看到改动的效果。本篇将详细介绍MyBatis热加载配置所需要的关键文件和...

    mybatis 延迟加载的深入理解

    MyBatis 的延迟加载功能默认是关闭的,需要在 SqlMapConfig.xml 文件中通过 setting 标签配置来开启延迟加载功能。开启延迟加载的属性包括: * lazyLoadingEnabled:全局性设置懒加载。如果设为‘false',则所有相...

    Mybatis中的延迟加载案例解析

    在Mybatis的核心配置文件中,可以通过以下两个设置来控制延迟加载的行为: 1. `lazyLoadingEnabled`:全局控制是否启用延迟加载。如果设置为`false`,所有关联的对象都会在加载时立即初始化;如果设置为`true`...

    MyBatis懒加载

    MyBatis懒加载,也称为延迟加载(Lazy Loading),是一种优化技术,主要应用于对象关系映射框架中,如MyBatis。懒加载的核心思想是“按需加载”,即在真正需要数据时才去数据库获取,而不是在初始加载实体对象时就一...

    Mybatis查询延迟加载详解及实例

    2. **全局启用延迟加载**:你可以在Mybatis的全局配置文件`mybatis-config.xml`中通过`&lt;settings&gt;`标签的`lazyLoadingEnabled`属性来开启延迟加载: ```xml ``` 设置为`true`后,所有未明确设置`fetchType`的...

    SpringBoot+tk.Mybatis整合+yml配置+logback配置

    在“SpringBoot+tk.Mybatis整合+yml配置+logback配置”这个主题中,我们将探讨以下几个关键知识点: 1. **SpringBoot整合tk.Mybatis**: tk.Mybatis 是 Mybatis 的一个扩展,提供了很多实用功能,如:动态 SQL、...

    mybatis多对多配置

    8. **延迟加载(Lazy Loading)**: MyBatis支持延迟加载,即在真正需要关联数据时才执行查询。这可以通过在`&lt;collection&gt;`标签中设置`lazyLoad="true"`实现。 9. **示例代码**:在`mybatisDemo001`项目中,可能包含...

Global site tag (gtag.js) - Google Analytics