Mybatis中collection实现一对多的问题

来源:互联网 发布:淘宝上买cpu可靠吗 编辑:程序博客网 时间:2024/06/10 11:16

今天在使用Mybatis中的Collection获取集合信息时,数据库中对应了多条数据,但在做单元测试时只能获取到一条数据

纠结了很久,突然想到是不是主键的问题,结果一试,还真是这么回事。

Mybatis中id和result的唯一不同是id表示的结果将是当比较对象实例时用到的标识属性。这帮助来改进整体表现,特别是缓存和嵌入结果映射。因此在不同的数据中要对ID进行唯一处理,不然就会出现类似我只能查看一条数据

<resultMap type="OrderBaseInfo" id="orderBaseMap"><id property="orderId" column="order_id" /><result property="orderGroupNo" column="order_group_id" /></resultMap><resultMap type="OrderBaseGroup" id="orderBaseGroupMap"><id property="orderGroupNo" column="order_group_id" /><result property="patientId" column="pat_id" /><collection property="orderItems" resultMap="orderBaseMap" /></resultMap>

例如上面mybatis文件中,orderId和orderGroupNo在数据库中对应的字段要唯一约束,只有这样你才能实现一对多的效果。

0 0
原创粉丝点击