ResultMap的写法
①ResultMap标签
type中应该填写返回值的pojo类型,例子中的User包含了用户的基本信息以及一个存放订单orders的pojo的list集合。orders的pojo除了订单信息,还包括了订单详细ordersdetail的list集合。
②collection标签
collection表示一对多的关系,property是定义好的集合类型,oftype指定集合中的元素类型。
③id标签
作用相当于外键,用于两表关联的标识。
④result标签
普通列,column对应数据库中表的列,property对应类中定义的属性。
⑤association标签
表示一对一的映射关系。
⑥结构分析
商品items和订单明细orderdetails是一对一的关系,通过association联系在一起。items和orderdetails整个关联体和order是多对一的关系。而用户和order是一对多关系,所以items和orderdetails的关联体以collection的方式包含在整个order的collection中。
Mybatis Collection查询集合只出现一条数据
1、原因
如果两表联查,主表和明细表的主键都是id的话,明细表的多条只能查询出来第一条。
2、解决办法
级联查询的时候,主表和从表有一样的字段名的时候,在mysql上命令查询是没问题的。但在mybatis中主从表需要为相同字段名设置别名。设置了别名就OK了。