,,,,延续mybatis的一对一问题,还是上面一对一举得那个例子(http://fengcl.blog.51cto.com/9961331/1875657),
如果一个用户有多个作品怎么办?这就涉及到了一对多的问题。同样的,mybatis一对多依然可以分为两种方式来解决。
一、使用内嵌的ResultMap实现一对多映射
1)实体
public class User implements 可序列化的{ ,,,private static final long serialVersionUID =, 112596782083832677 l; ,,,private Integer id;//编号 ,,,private String 电子邮件,,//邮箱 ,,,private String realName;,//真实姓名 ,,,private String 电话,,,,//电话号码 ,,,, ,,,private List, worksInfos;,//作品 ,,,//获取,设置方法 ,,,… } public class  WorksInfo implements 可序列化的{ ,,,private Integer id; ,,,private , Integer 标识; ,,,private Date uploadDate;,//上传时间 ,,,private Date updateDate;,//更新时间 ,,,//获取,设置方法 ,,,… }
2)刀接口省略…
3) mapper映射文件
& lt; resultMap type=" com.tarena.djs.entity.WorksInfo ", id=皐orksInfoResultMap”比; ,,,& lt; id 列=" id ",财产=" id ",/比; ,,,& lt; result 列=皍ploadDate”,属性=皍ploadDate”,/比; ,,,& lt; result 列=皍pdateDate”,属性=皍pdateDate”,/比; & lt;/resultMap> & lt; resultMap 类型=" com.tarena.djs.entity.User ", id=癠serResult”比; ,,,& lt; id 列=" id ",财产=" id ",/祝辞, ,,,& lt; result 列=暗缱佑始?属性=暗缱佑始?/比; ,,,& lt; result 列=暗缁啊?属性=暗缁啊?/比; ,,,& lt; result ,列=皉ealName”,,财产=皉ealName”/比; ,,,& lt; collection 财产=皐orksInfos”, resultMap=皐orksInfoResultMap”,/比; & lt;/resultMap> & lt; select id=" findTutorById ", parameterType=癷nt”, resultMap=癠serResult”比; ,,,select u。* *, w。 ,,,,得到user u ,,,left join worksInfo w ,,,提醒u.id =, w.userId ,,,where u.id =, # {id},,,, & lt;/select>
4)测试省略
二、嵌套查询方式实现一对多
1)实体类如上
2) dao层接口省略
3) mapper文件映射
& lt; resultMap type=" com.tarena.djs.entity.WorksInfo, id=皐orksInfoResultMap”比; ,,,& lt; id 列=" id ",财产=" id ",/比; ,,,& lt; result 列=皍ploadDate”,属性=皍ploadDate”,/比; ,,,& lt; result 列=皍pdateDate”,属性=皍pdateDate”,/比; & lt;/resultMap> & lt; select id=" findWorksInfoByUserId ", parameterType=癷nt”, resultMap=皐orksInfoResultMap”比; ,,,select *,得到worksInfo where userId =, # {userId} & lt;/select> & lt; resultMap 类型=" com.tarena.djs.entity.User ", id=癠serResult”比; ,,,& lt; id 列=" id ",财产=" id ",/祝辞, ,,,& lt; result 列=暗缱佑始?属性=暗缱佑始?/比; ,,,& lt; result 列=暗缁啊?属性=暗缁啊?/比; ,,,& lt; result ,列=皉ealName”,,财产=皉ealName”/比; ,,,& lt; collection 财产=皐orksInfos”,列=" id ",选择=癴indWorksInfoByUserId”,/比; & lt;/resultMap> & lt; select id=" findUserByUserId ", parameterType=癷nt”, resultMap=癠serResult”比; ,,,select *,得到user where id =, # {id} & lt;/select>
4)测试方法忽略