在MyBatis中执行更新时,有什么方法可以返回主键或实体

时间:2019-06-23 12:04:20

标签: mybatis

我正在使用MyBatis(DB为MySQL)使用update语句修改记录,我想返回更新实体,有什么方法可以获取更新实体或主键来查询更新实体吗?这是我的更新声明:

  <update id="updateForFreeSeat" parameterType="com.sportswin.soa.red.envelop.model.entity.RoomSeat">
    update r_room_seat
    set status = 1
    where room_id = #{roomId,jdbcType=BIGINT}
    order by room_play_id desc
    limit 1
  </update>

我只是使用这种方法读取插入返回选择pk:

  <selectKey resultType="java.lang.Long" keyProperty="id" order="AFTER" >
    SELECT LAST_INSERT_ID()
  </selectKey>

如何更新?

1 个答案:

答案 0 :(得分:1)

根据mybatis documentation,您可以使用useGeneratedKeys进行更新和插入。

假设您要返回的字段和属性命名为id,您可以这样操作:

<update id="updateForFreeSeat"
      parameterType="com.sportswin.soa.red.envelop.model.entity.RoomSeat"
      useGeneratedKeys="true"
      keyProperty="id">
    update r_room_seat
    set status = 1
    where room_id = #{roomId,jdbcType=BIGINT}
    order by room_play_id desc
    limit 1
</update>