在MyBatis中實現延遲加載可以通過設置lazyLoadingEnabled
屬性為true
來實現。默認情況下,MyBatis會在獲取對象時立即加載關聯的對象。但是,如果設置lazyLoadingEnabled
屬性為true
,MyBatis會延遲加載關聯的對象,只有在需要使用關聯對象時才會去加載。
另外,可以通過在Mapper.xml配置文件中使用select
元素的fetchType="lazy"
屬性來實現延遲加載。例如:
<select id="getUser" resultMap="userResultMap" fetchType="lazy">
SELECT * FROM user WHERE id = #{id}
</select>
這樣配置之后,在調用getUser
方法獲取用戶信息時,關聯的對象不會立即加載,只有在訪問關聯對象的屬性時才會去加載。
總的來說,延遲加載可以通過設置lazyLoadingEnabled
屬性為true
或者在Mapper.xml配置文件中使用fetchType="lazy"
屬性來實現。