MyBatis中怎么进行延迟加载

567
2024/3/10 9:46:46
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在MyBatis中进行延迟加载可以通过配置来实现。延迟加载是指在需要使用某个属性时才去查询数据库加载该属性的值,而不是在查询主实体时就将所有相关属性都加载出来。

在MyBatis中可以通过使用标签的fetchType属性来设置延迟加载方式。fetchType属性有两种取值,分别是lazy和eager。

  1. lazy加载:在需要使用某个关联属性时才去查询加载相关数据,可以减少不必要的数据查询,提高查询性能。可以通过在标签中设置fetchType="lazy"来实现延迟加载。
<association property="author" column="author_id" javaType="Author" fetchType="lazy"/>
<collection property="comments" column="post_id" ofType="Comment" fetchType="lazy"/>
  1. eager加载:在查询主实体时就将所有关联属性加载出来,如果关联属性数据量较小且常用,可以使用eager加载方式。可以通过在标签中设置fetchType="eager"来实现即时加载。
<association property="author" column="author_id" javaType="Author" fetchType="eager"/>
<collection property="comments" column="post_id" ofType="Comment" fetchType="eager"/>

需要注意的是,延迟加载需要在MyBatis的配置文件中开启延迟加载功能,可以通过设置lazyLoadingEnabled和aggressiveLazyLoading属性为true来开启。

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

通过在映射文件中配置fetchType属性和在配置文件中开启延迟加载功能,就可以实现在MyBatis中进行延迟加载。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: Mybatis tenant功能怎样进行测试