MyBatis应用开发(16)延迟加载之概念

1.1.1. 延迟加载的概念

缓加载是恃以存在涉嫌关系常,在加载主表数据经常,仅仅加载主表数据及投的Java
Bean对象被,而未见面这将干的子表数据加载到在涉嫌关系之打属Java Bean中。在访问到干的Java Bean的有关章程时,才会加载子表到关系的从属Java Bean中。

 

采取嵌套查询时,MyBatis支持延迟加载功能。

 

MyBatis提供了2种植艺术决定延缓加载与否。

术相同:在SqlMapConfig.xml文件被采取3只setting结点控制总体程序中的association和collection涉及的关系关系是否使用延缓加载。

 

<!– 延迟加载:true,  立即加载:false,默认false –>

<setting  name=”lazyLoadingEnabled” value=”true” />

 

<!– 侵略性延迟加载 : 默认false(3.4.2跟创新版本MyBatis)

   true:访问主表数据对应之Java Bean的代办对象任何措施以促成有的延迟加载属性关联对象吃立刻加载。此时导致lazyLoadingEnabled失效。

   false:关联对象非见面给立即加载。

–>

<setting  name=”aggressiveLazyLoading” value=”false” />

 

<!– 于使延缓加载后,访问主表数据对应的Java Bean的代办对象的哪措施将致加载被触发。此处触发加载时以加载该Java Bean的有着延迟加载属性关联对象对应的多寡。

    默认值:equals,clone,hashCode,toString。  

 –>

<setting name=”lazyLoadTriggerMethods”
value=”equals,clone,hashCode,toString” />

 

 

道二:在association和collection使用fetchType属性控制单个语句的推迟加载。

 fetchType:加载方式。

        lazy:延迟加载。

        eager:立即加载。

 

fetchType在以后会见覆盖setting中之大局配置,即采取了fetchType的语句,其推迟加载与否是由fetchType决定。

 

网站地图xml地图