<select id="findUserInfoListForMap" resultMap="BaseResultMap">
SELECT p.name, u.u_name,u.company,u.proComany,u.mobile,u.email, r.money
FROM iw_user u
LEFT JOIN raiseentry r on r.userId=u.id
LEFT JOIN project p on r.sourceId=p.projectId
</select>
經細心驗證,BaseResultMap中的屬性均有配全,但是該語句執行時返回的記錄條數與直接在數據庫中查詢的不一致。
但是改成如下語句后,(多了個查詢字段u.id)
<select id="findUserInfoListForMap" resultMap="BaseResultMap">
SELECT u.id,p.name, u.u_name,u.company,u.proComany,u.mobile,u.email, r.money
FROM iw_user u
LEFT JOIN raiseentry r on r.userId=u.id
LEFT JOIN project p on r.sourceId=p.projectId </select>
查詢結果正常。百度了下發現也有人碰到這種情況(http://www.iteye.com/problems/95931),其解決方法是:
1)select * from。。。。
2)select r.userId,u.id, r.sourceId,p.projectId(將這些字段都包括進去)。。。
3)將所要查詢的字段封裝成一個DTO對象,在Mapper.xml中再定義一個resultMap,type指向那個DTO對象,內容是需要查詢字段與DTO對象屬性中的映射。