在 MyBatis 中执行更新时有什么方法可以 return 主键或实体
is there any way to return primary key or entity when execute update in MyBatis
我正在使用更新语句使用MyBatis修改记录(DB是MySQL),我想return更新实体,有没有办法获取更新实体或主键来查询更新实体?这是我的更新声明:
<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>
我刚刚使用这种方法读取了 insert return select pk:
<selectKey resultType="java.lang.Long" keyProperty="id" order="AFTER" >
SELECT LAST_INSERT_ID()
</selectKey>
更新怎么样?
根据 mybatis documentation 你可以使用 useGeneratedKeys
更新和插入。
假设您想要 return 的字段和 属性 被命名为 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>
我正在使用更新语句使用MyBatis修改记录(DB是MySQL),我想return更新实体,有没有办法获取更新实体或主键来查询更新实体?这是我的更新声明:
<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>
我刚刚使用这种方法读取了 insert return select pk:
<selectKey resultType="java.lang.Long" keyProperty="id" order="AFTER" >
SELECT LAST_INSERT_ID()
</selectKey>
更新怎么样?
根据 mybatis documentation 你可以使用 useGeneratedKeys
更新和插入。
假设您想要 return 的字段和 属性 被命名为 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>