不管我怎么弄,有且只有一條,而且是最后一條。。。實體類Users中有屬性cardId,為主鍵,是實體類RealEstate的外鍵,RealState中有1對多關系屬性private Users user;dao接口和映射文件代碼:public?interface?RealEstateMapper?{
@MapKey("users")
public?Map<Users,RealEstate>?getReListByUsers(Users?users);
@MapKey("id")
public?Map<Integer,RealEstate>?getReListById(Integer?Id);
public?Integer?insertRes(RealEstate?realEstate);
public?Integer?deleteRes(RealEstate?realEstate);
public?Integer?updateRes(RealEstate?realEstate);
}<?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="dao.RealEstateMapper">
<select?id="getReListById"?resultType="RealEstate"?parameterType="RealEstate">
select?*?from?real_estate?where?id=#{id}
</select>
<select?id="getReListByUsers"?resultType="RealEstate"?parameterType="Users">
select?*?from?real_estate?where?cardId=#{cardId}
</select>
<select?id="insertRes"?parameterType="RealEstate">
insert?into?real_estate(id,cardId,projectName,address,houseType,area,buildTime)?values(
#{id},#{cardId},#{projectName},#{address},#{houseType},#{area},#{buildTime}
)
</select>
<select?id="updateRes"?parameterType="RealEstate">
update?real_estate?set?cardId=#{cardId},projectName=#{projectName},address=#{address},houseType=#{houseType},area=#{area},buildTime=#{buildTime}?
where?cardId=#{cardId}
</select>
<select?id="deleteRes"?parameterType="RealEstate">
delete?from?real_estate?where?cardId=#{cardId}?or?id=#{id}
</select>
</mapper>controller中調用了getReListByUsers(users)方法,users對象的cardId屬性已賦值,控制臺輸出語句如下:[DEBUG] 2017-09-01 20:26:09,375 dao.RealEstateMapper.getReListByUsers - ==> ?Preparing: select * from real_estate where cardId=??[DEBUG] 2017-09-01 20:26:09,375 dao.RealEstateMapper.getReListByUsers - ==> Parameters: 123456789123456789(String)用foreach輸出查詢到的對象只顯示mysql中符合條件的最后一個數據,但是在mysql中能全部查出,參數我試了好幾種,結果都一樣,求解??!
2 回答
已采納

精慕門9254224
TA貢獻167條經驗 獲得超46個贊
一對多關系查出來不是應該用list 來接收嗎?還有你的增刪改為什么還用select 標簽,不應該有對應的insert ,update ,delete 標簽嗎?
添加回答
舉報
0/150
提交
取消