一、一对多关联关系
需求:通过mybatis完成订单查询,给一个订单id,查询对应订单及订单项的信息
实现:
order:定义一个引用对象:List<OrderItem> OrderItems
OrderItem:定义一个引用对象 Order Order
resultMap的映射
1、在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> <table schema="" tableName="t_hibernate_book" domainObjectName="Hbook" enableCountByExample="false" enableDeleteByExample="false" enableSelectByExample="false" enableUpdateByExample="false"> </table> <table schema="" tableName="t_hibernate_category" domainObjectName="Category" enableCountByExample="false" enableDeleteByExample="false" enableSelectByExample="false" enableUpdateByExample="false"> </table> <table schema="" tableName="t_hibernate_book_category" domainObjectName="HbookCategory" enableCountByExample="false" enableDeleteByExample="false" enableSelectByExample="false" enableUpdateByExample="false"> </table>
生成后注意切换mybatis-generatorConfig -e为其他任意一个,避免二次生成
创建两个实体类
OrderVo
package com.dhm.vo;
import com.dhm.model.Order;
import com.dhm.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.dhm.vo;
import com.dhm.model.Order;
import com.dhm.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
<resultMap id="OrderVoMap" type="com.dhm.vo.OrderVo" >
<result