Mybatis返回一個實體類中部分屬性
阿新 • • 發佈:2022-04-18
需求
- 最近遇到一個事情,前端某個請求只需要後端實體類中的某幾個屬性,但是資料庫中卻定義了其他屬性,我們如何把其他屬性的值排除在外,只獲取我們需要的屬性值呢?
- 即原本資料庫欄位,有很多,但是我們只需要某些欄位
解決
方法一:自己定義一個resultMap
- xml中:type=“java.util.HashMap”
<!-- 會議總覽--> <resultMap type="java.util.HashMap" id="RelateResult2"> <result property="meetingName" column="meeting_name" /> <result property="beginTime" column="begin_time" /> <result property="meetingForm" column="meeting_form" /> <result property="usePlatform" column="use_platform" /> <result property="meetingStatus" column="meeting_status" /> </resultMap>
- sql語句:只返回需要欄位即可
<select id="selectMyList2" resultMap="RelateResult2">-- 會議總覽 SELECT a.meeting_name,a.begin_time,a.meeting_form,a.use_platform,a.meeting_status FROM meeting_record as a INNER JOIN meeting_participant_list as b ON a.meeting_id = b.meeting_id where b.participant_name=#{name} </select>
- 同時把對應的service和mapper檔案裡面的對應的方法返回值型別改成List<Map<String, Object>>
- mapper返回字典物件
- 新建的是resultMap
報錯:resultMap中property的指定值爆紅
方法二:很笨的方法。重新新建一個物件實體,該實體檔案的欄位與要返回的 “部分欄位” 一一對應即可
- resultMap 的type=實體類 指向一個檔案,該檔案為新建實體類,裡面是要返回的 “部分欄位”
- mapper返回實體類物件
- 新建的是實體類