Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用getGeneratedKeys-MyBatis时获取更新记录主键失败_Java_Mybatis - Fatal编程技术网

Java 使用getGeneratedKeys-MyBatis时获取更新记录主键失败

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

我正试图在MyBatis(v3.5.1)中以这种方式获取更新记录主键:

现在我获取更新记录id失败,该id是我的主键。这是我的调试输出:


我应该如何获得更新记录的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);