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的指定值爆红

image

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

  • resultMap 的type=实体类 指向一个文件,该文件为新建实体类,里面是要返回的 “部分字段”
  • mapper返回实体类对象
  • 新建的是实体类

原创文章,作者:carmelaweatherly,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/245630.html

(0)
上一篇 2022年4月18日 15:54
下一篇 2022年4月18日 15:58

相关推荐

发表回复

登录后才能评论