Java 使用getGeneratedKeys-MyBatis时获取更新记录主键失败
我正试图在MyBatis(v3.5.1)中以这种方式获取更新记录主键: 现在我获取更新记录id失败,该id是我的主键。这是我的调试输出:Java 使用getGeneratedKeys-MyBatis时获取更新记录主键失败,java,mybatis,Java,Mybatis,我正试图在MyBatis(v3.5.1)中以这种方式获取更新记录主键: 现在我获取更新记录id失败,该id是我的主键。这是我的调试输出: 我应该如何获得更新记录的id?我是这样实现的: int updateForFreeSeat(RoomSeat roomSeat); <select id="updateForFreeSeat" parameterType="com.sportswin.soa.room.model.entity.RoomSeat" re
我应该如何获得更新记录的id?我是这样实现的:
int updateForFreeSeat(RoomSeat roomSeat);
<select id="updateForFreeSeat"
parameterType="com.sportswin.soa.room.model.entity.RoomSeat" resultType="com.sportswin.soa.room.model.entity.RoomSeat">
set @update_id := 0;
UPDATE r_room_seat SET status = #{record.status,jdbcType=INTEGER},
id = (SELECT @update_id := id),
user_id = #{record.userId,jdbcType=BIGINT},
robot_flag = #{record.robotFlag,jdbcType=TINYINT}
WHERE room_play_id = #{record.roomPlayId,jdbcType=BIGINT} and status = 0
LIMIT 1;
select <include refid="Base_Column_List" /> from r_room_seat where id = @update_id;
</select>
我受到这个问题的启发
<select id="updateForFreeSeat"
parameterType="com.sportswin.soa.room.model.entity.RoomSeat" resultType="com.sportswin.soa.room.model.entity.RoomSeat">
set @update_id := 0;
UPDATE r_room_seat SET status = #{record.status,jdbcType=INTEGER},
id = (SELECT @update_id := id),
user_id = #{record.userId,jdbcType=BIGINT},
robot_flag = #{record.robotFlag,jdbcType=TINYINT}
WHERE room_play_id = #{record.roomPlayId,jdbcType=BIGINT} and status = 0
LIMIT 1;
select <include refid="Base_Column_List" /> from r_room_seat where id = @update_id;
</select>
RoomSeat updateForFreeSeat(@Param(value = "record")RoomSeat roomSeat);