在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中進行延遲加載。