关于mybatis延迟加载总结

时间:2014-10-20 13:12:19   收藏:0   阅读:205

关于延迟加载设置应该有很多地方都有说明这里也啰嗦一下,在mybatis配置文件中加入
<settings>
<setting name="mapUnderscoreToCamelCase" value="true" />
<setting name="lazyLoadingEnabled" value="true"/>
<setting name="aggressiveLazyLoading" value="false"/> <!-- 按需加载对象 -->
</settings>

这里配置了一般都可以进行延迟加载,啥时候加载呢,一般是在我们调用对象的get方法是才进行加载,
下面对一些细节设置进行一个说明
比如我需要知道部门的用户 我们会在部门对象中添加
private List<User> roleUsers;
在该对象对应的mybatis mapper文件中resultMap中添加
<collection property="roleUsers" column="ID" javaType="ArrayList" ofType="User"
select=".dao.User.getByRoleId"></collection>
在查询select中有个resultType 和resultMap 这里需要用resultMap ,用resultType 的话roleUsers会为空
一般在Role对象中在roleUsers上加@Transient注释(不做持久化),如果roleUser也要在前台输出,则在数据转成json的时候自动调用get方法,会加载roleUsers数据,如果不需要加载roleUsers数据则在该属性上加@JSONField(serialize=false)注释就可以;

原文:http://www.cnblogs.com/javaavaj/p/4036800.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!