ibatis查詢SQL語句返回一個對象,此對象包含一個List屬性


可能標題說的不是很明白,具體其實就是:

我需要查詢一個用戶,但是這個用戶擁有多張試卷,所以我將試卷這個對象,作為User對象的一個屬性,這個屬性為List類型。這樣我在SQL查詢時直接查詢user表返回user對象,此user對象包含一個屬性(List<Test>多張試卷)。

java實體類對應關系:

public class Test{
    
    private Integer userID;           // 主鍵ID
    private String username;          // 姓名
    private String idCard;            // 身份證號
    private Integer sex;              //性別
    private String mobilePhone;       // 手機號
    
    private List<Test> propertyList;  //List屬性
}

ibatis對應XML文件查詢代碼:

    <resultMap id="List_result" class="com.ceshi.user.domain.User">
        <result property="userID" column="userID"/>
        <result property="idCard" column="idCard"/>
        <result property="username" column="username"/>
        <result property="mobilePhone" column="mobilePhone"/>
        <result property="propertyList" column="{userID=userID}" select="getpropertyList"/>
        
    </resultMap>
    <select id="getpropertyList" parameterClass="HashMap" resultClass="com.ceshi.user.domain.User">
        SELECT userID ,paperName,
        GROUP_CONCAT(courseRecomm SEPARATOR ',') courseRecomm
        FROM test
        WHERE userID = #userID#
        GROUP BY userID,paperName
    </select>
    <select id="getList" parameterClass="com.ceshi.user.domain.User" resultMap="List_result">
        SELECT 
          a.userID,
          a.idCard,
          a.username,
          CASE
            a.sex 
            WHEN '1' 
            THEN '女' 
            ELSE '男' 
          END AS sexName,
          a.mobilePhone,
        FROM user a         
          <dynamic prepend="WHERE">
            <isNotNull prepend="AND" property="userID"> a.userID=#userID# </isNotNull>
            <isNotNull prepend="AND " property="username"> a.username like'%$username$%'</isNotNull>
            <isNotNull prepend="AND" property="idCard"> a.idCard=#idCard# </isNotNull>
        </dynamic>
         ORDER BY a.userID DESC
    </select>

簡單來張圖說明一下;

查問卷表拼接用戶結果是這樣的:同一個人對應多張試卷,查詢試卷表結果。

但是我只想查用戶表,也返回用戶對應的試卷,也就是這樣:

記錄一下,雖然簡單。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM