一、一对多关联关系
注:这边使用订单表和订单详情表为例
第一步:用逆向生成工具生成对应的方法以及实体类
在generatorConfig.xml中编写代码生成代码
<!-- 订单表-->
<table schema="" tableName="t_hibernate_order" domainObjectName="Order"
enableCountByExample="false" enableDeleteByExample="false"
enableSelectByExample="false" enableUpdateByExample="false">
</table>
<!-- 订单项表-->
<table schema="" tableName="t_hibernate_order_item" domainObjectName="OrderItem"
enableCountByExample="false" enableDeleteByExample="false"
enableSelectByExample="false" enableUpdateByExample="false">
</table>
再调用配置的代码生成语句
第二步:编写Vo类
注:Vo类继承实体类然后再根据是一对多还是多对多了来进行调节
分析:订单对应多个订单详情,那么订单Vo类里面就有一个集合来装订单详情
订单详情对应一个订单,那么订单详情Vo类中放的就是一个订单的对象
OrderVo
package com.zxy.vo;
import com.zxy.model.Order;
import com.zxy.model.OrderItem;
import java.util.ArrayList;
import java.util.List;
public class OrderVo extends Order {
private List<OrderItem> orderItems = new ArrayList<>();
public List<OrderItem> getOrderItems() {
return orderItems;
}
public void setOrderItems(List<OrderItem> orderItems) {
this.orderItems = orderItems;
}
}
OrderItemVo
package com.zxy.vo;
import com.zxy.model.Order;
import com.zxy.model.OrderItem;
public class OrderItemVo extends OrderItem {
private Order order;
public Order getOrder() {
return order;
}
public void setOrder(Order order) {
this.order = order;
}
}
第三步:在OrderMapper.xml,OrderItemMapper.xml中追加配置
这里涉及到两个标签
一对多:<collection property= oftype="类的全路径名">
一对一:<assocation property javaType="类的全路径名">
OrderMapper.xml
<resultMap id="OrderVoMap" type="com.zxy.vo.OrderVo" >
<result property="orderId" column="order_id"></result>
<result property="orderNo" column="order_no"></result>
<collection property="orderItems" ofType="com.zxy.model.OrderItem">
<result property="orderItemId" column="order_item_id"></result>
<result property="oid" column="oid"></result>
<result property="productId