需求
- 最近遇到一個事情,前端某個請求只需要后端實體類中的某幾個屬性,但是數據庫中卻定義了其他屬性,我們如何把其他屬性的值排除在外,只獲取我們需要的屬性值呢?
- 即原本數據庫字段,有很多,但是我們只需要某些字段
解決
方法一:自己定義一個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>
<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的指定值爆紅:不用管,可以正常返回字典,可提交svn

方法二:很笨的方法。重新新建一個對象實體,該實體文件的字段與要返回的 “部分字段” 一一對應即可
- resultMap 的type=實體類 指向一個文件,該文件為新建實體類,里面是要返回的 “部分字段”
- mapper返回實體類對象
- 新建的是實體類