mybatis 一对多 collection标签嵌套查询
时间: 2023-11-20 22:06:43 浏览: 213
在 MyBatis 中,可以使用 collection 标签进行一对多的嵌套查询。具体实现步骤如下:
1. 在主查询语句中,使用嵌套查询语句查询出一对多关系中的多的一方,并将查询结果映射到一个集合属性中。
2. 在映射文件中,使用 collection 标签将集合属性与多的一方进行关联,并指定关联属性和查询语句。
例如,假设有两个表:订单表和订单明细表,一个订单可以对应多个订单明细。主查询语句如下:
```
<select id="getOrderList" resultMap="orderResultMap">
select * from orders
</select>
```
在映射文件中,可以使用如下的方式进行嵌套查询:
```
<resultMap id="orderResultMap" type="Order">
<id property="id" column="id"/>
<result property="orderNo" column="order_no"/>
<collection property="orderDetails" ofType="OrderDetail" resultMap="orderDetailResultMap"/>
</resultMap>
<resultMap id="orderDetailResultMap" type="OrderDetail">
<id property="id" column="id"/>
<result property="productId" column="product_id"/>
<result property="quantity" column="quantity"/>
</resultMap>
<select id="getOrderList" resultMap="orderResultMap">
select * from orders
</select>
```
在上面的例子中,collection 标签指定了集合属性 orderDetails 和关联的类型 OrderDetail,同时指定了查询语句的 resultMap 为 orderDetailResultMap。
阅读全文