mybatis使用Collection查询集合只出现一条数据
一、原因:
两表连查,如果主键名一样,明细出现了一条;
二、解决:
如下两表都有id主键字段,给从表的主键设置别名;
<!-- 通用查询映射结果 --> <resultMap id="UserResultMap" type="com.gd.mqtest.domain.User"> <id column="id" property="id"/> <result column="name" property="name"/> <result column="age" property="age"/> <result column="email" property="email"/> <!--<collection property="userDetails" javaType="java.util.ArrayList" ofType="com.gd.mqtest.domain.UserDetail">--> <!-- <id column="t_id" property="id" />--> <!-- <result column="user_id" property="userId" />--> <!-- <result column="color" property="color" />--> <!--</collection>--> </resultMap> <select id="select" resultMap="UserResultMap"> select u.id, u.name, u.age, u.email,ud.id t_id, ud.user_id, ud.color from user u join user_detail ud on u.id=ud.user_id </select>