mybatis中collection的属性
时间: 2023-11-13 12:05:18 浏览: 388
MyBatis中collection属性用于指定一个集合类型的属性,在进行多表关联查询时,可以将查询结果中的多条记录映射到一个Java对象中的集合属性中。
常见的collection属性取值包括:
- property:指定Java对象中的集合属性名称;
- ofType:指定集合中元素的类型;
- column:指定当前表中用于关联的字段名称;
- select:指定另一个<select>语句的ID,用于查询集合元素的数据。
例如:
```xml
<!-- 查询订单信息及其包含的订单项列表 -->
<select id="findOrderWithOrderItems" resultMap="orderResultMap">
SELECT * FROM orders o
LEFT JOIN order_items oi ON o.order_id = oi.order_id
WHERE o.order_id = #{orderId}
</select>
<!-- 定义订单信息的结果集映射 -->
<resultMap id="orderResultMap" type="Order">
<id property="id" column="order_id"/>
<result property="orderNo" column="order_no"/>
<collection property="orderItems" ofType="OrderItem">
<id property="id" column="item_id"/>
<result property="productName" column="product_name"/>
<result property="price" column="price"/>
</collection>
</resultMap>
```
在上述例子中,<collection>标签的property属性指定了Java对象Order中的集合属性orderItems,ofType属性指定了集合中元素的类型为OrderItem。在查询语句中,使用LEFT JOIN进行关联查询,将查询结果中的多条记录映射到Java对象Order的集合属性orderItems中。
阅读全文