在MyBatis中进行延迟加载可以通过配置来实现。延迟加载是指在需要使用某个属性时才去查询数据库加载该属性的值,而不是在查询主实体时就将所有相关属性都加载出来。
在MyBatis中可以通过使用
<association property="author" column="author_id" javaType="Author" fetchType="lazy"/>
<collection property="comments" column="post_id" ofType="Comment" fetchType="lazy"/>
<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中进行延迟加载。