Fork me on GitHub

Mybatis返回一个实体类中部分属性

需求

  • 最近遇到一个事情,前端某个请求只需要后端实体类中的某几个属性,但是数据库中却定义了其他属性,我们如何把其他属性的值排除在外,只获取我们需要的属性值呢?
  • 即原本数据库字段,有很多,但是我们只需要某些字段

解决

方法一:自己定义一个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的指定值爆红:不用管,可以正常返回字典,可提交svn

image

方法二:很笨的方法。重新新建一个对象实体,该实体文件的字段与要返回的 “部分字段” 一一对应即可

  • resultMap 的type=实体类 指向一个文件,该文件为新建实体类,里面是要返回的 “部分字段”
  • mapper返回实体类对象
  • 新建的是实体类
posted @ 2022-04-18 12:04  ds6666  阅读(1146)  评论(0)    收藏  举报