因为商品信息和订单明细有外键关联,
在订单明细po类添加商品信息属性
public class Orderdetail {
private int id;
private int orders_id;
private int item_id;
private int item_num;
private Float item_price;
//商品的信息
private Items items;
目标:resultMap将订单明细映射到orders.java中的List<Orderdetail> orderdetails,将商品信息映射到Orderdetail.java中商品属性中(Items items)。
Mapper.xml
1.定义resultMap
<!--
多对多映射
-->
<resultMap type="orders" id="manytomany" >
<collection property="orderdetail" ofType="com.mo.pojo.Orderdetail">
<!--
订单明细 与 商品信息 进行 多对多 的映射
column:字段名
property:po类属性
id:唯一的字段,一般为主键
result:普通字段
-->
<id column="orderdetail_id" property="id"/>
<result column="item_id" property="item_id"/>
<result column="item_num" property="item_num"/>
<result column="item_price" property="item_price"/>
<!-- 映射商品信息,单个po类,collection集合中一个元素的一个属性 -->
<association property="items" javaType="com.mo.pojo.Items">
<id column="item_id" property="id"/>
<result column="item_name" property="item_name"/>
<result column="item_price_price" property="item_price"/>
<result column="item_detail" property="item_detail"/>
</association>
</collection>
</resultMap>
2.statement编写
<select id="manytomany" resultMap="manytomany">
SELECT
orders.*,
orderdetail.id orderdetail_id,
orderdetail.item_id,
orderdetail.item_num,
orderdetail.item_price,
items.item_name,
items.item_price item_price_price,
items.item_detail
FROM
orders,
orderdetail,
items
WHERE
orders.id = orderdetail.orders_id
AND
orderdetail.item_id = items.id
</select>
3.Mapper.java的编写
public interface OrdersMapperCustom {
List<Orders> manytomany();
}
结果