mybatis 一对多 collection标签
时间: 2023-11-20 22:06:16 浏览: 35
MyBatis 中的 collection 标签用于映射一对多关系,它可以将一个集合类型的属性映射到多个结果集中。在使用 collection 标签时,需要指定 select 属性来指定查询语句的 ID,同时也需要指定 resultMap 属性来指定结果集的映射规则。
例如,以下是一个使用 collection 标签的示例:
```
<resultMap id="orderResultMap" type="Order">
<id property="id" column="order_id"/>
<result property="orderNo" column="order_no"/>
<collection property="items" ofType="OrderItem">
<id property="id" column="item_id"/>
<result property="name" column="item_name"/>
<result property="price" column="item_price"/>
</collection>
</resultMap>
<select id="getOrderWithItems" resultMap="orderResultMap">
SELECT o.id AS order_id, o.order_no, i.id AS item_id, i.name AS item_name, i.price AS item_price
FROM orders o
LEFT JOIN order_items i ON o.id = i.order_id
WHERE o.id = #{orderId}
</select>
```
以上示例中,使用 collection 标签将 Order 对象中的 items 属性映射到了多个 OrderItem 对象中。