mybatis返回值一对多
时间: 2023-11-09 21:02:16 浏览: 110
mybatis 一对多
可以使用MyBatis的一对多映射来实现返回一对多的结果。具体实现方式是在主实体类中定义一个包含多个从实体类对象的集合属性,然后在MyBatis的映射文件中使用association和collection标签来进行关联映射。
例如,假设有一个订单Order和订单项OrderItem的实体类,一个订单可以对应多个订单项,那么可以在Order类中定义一个List<OrderItem>类型的属性,然后在MyBatis的映射文件中进行如下配置:
```
<resultMap id="orderMap" type="Order">
<id property="id" column="order_id"/>
<result property="orderNo" column="order_no"/>
<result property="createTime" column="create_time"/>
<collection property="orderItems" ofType="OrderItem">
<id property="id" column="item_id"/>
<result property="itemName" column="item_name"/>
<result property="itemPrice" column="item_price"/>
</collection>
</resultMap>
<select id="getOrderWithItems" resultMap="orderMap">
SELECT o.id AS order_id, o.order_no, o.create_time,
i.id AS item_id, i.item_name, i.item_price
FROM orders o
LEFT JOIN order_items i ON o.id = i.order_id
WHERE o.id = #{orderId}
</select>
```
这样就可以通过调用getOrderWithItems方法来获取一个订单及其对应的所有订单项了。
阅读全文