mybatis 的一對多
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ly.fw.dao.OrderDAO"> <resultMap type="com.ly.fw.entity.Order" id="order"> <id column="id" property="id" /> <result column="orderId" property="orderId" /> <result column="user" property="user" /> <result column="address" property="address" /> <result column="tel" property="tel" /> <result column="code" property="code" /> <result column="orderPrice" property="orderPrice" /> <result column="transNum" property="transNum" /> <result column="status" property="status" /> <result column="time" property="time" /> <collection property="productList" column="orderId" resultMap="opro"/> </resultMap> <resultMap type="com.ly.fw.entity.OrderProduct" id="opro"> <id column="opid" property="opId" /> <result column="orderId" property="orderId" /> <result column="productId" property="productId" /> <result column="count" property="count" /> <result column="price" property="price" /> <result column="size" property="size" /> </resultMap> <select id="getAll" resultMap="order"> select o.*,p.* from `order` as o, order_product as p where o.orderId=p.orderId order by o.`time` desc limit #{start},#{end} </select> </mapper>
實體類中:
private long id ; private String orderId ;//訂單id private String user ;//用戶 private String address ;//地址 private String tel ;//電話 private String code ;//郵編 private String orderPrice ;//訂單金額 private String transNum; private int status;//狀態。 private Date time;//訂單時間 private List<OrderProduct> productList;// 一對多
正常情況這樣是直接能返會集合中的數據的。但是今天遇到個問題是返還的集合中始終只有一條數據。數據庫中返回應該不只一條.
查了半天資料發現:兩張表的主鍵名稱不能一樣,我就是由於兩張表的主鍵 都是 “id” 所以返回只有一條數據