码迷,mamicode.com
首页 > 其他好文 > 详细

关于mybatis延迟加载总结

时间:2014-10-20 13:14:44      阅读:226      评论:0      收藏:0      [点我收藏+]

标签:io   ar   java   文件   数据   on   cti   ad   as   

关于延迟加载设置应该有很多地方都有说明这里也啰嗦一下,在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)注释就可以;

关于mybatis延迟加载总结

标签:io   ar   java   文件   数据   on   cti   ad   as   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!