1

私のプロジェクトでは、私のserviceImplの1つで、mybatis-spring、springMVCを使用しています

public int setRetransmissionState(Map params) {
    String ids = (String) params.get("ids");
    List<String> list = Arrays.asList(ids.split(","));
    int result = 0;
    for (String id : list) {
        String retransmissionId = CreateOrderIDUtil.getUniqueKey("rt");
        params.put("sequenceId", id);
        params.put("retransmissionId", retransmissionId);
        int i = this.dao.setRetransmissionState(params);
        int j = this.dao.insertRetransmission(params);
        result++;
    }
    return result;
} 

DaoImpl

@Autowired
private SqlSession sqlSession;

@Override
public int setRetransmissionState(Map params) {
    return this.sqlSession.update("retransmission.setRetransmissionState", params);
}

@Override
public int insertRetransmission(Map params) {
    return this.sqlSession.insert("retransmission.insertRetransimssion", params);
}

Mapper.xml

<update id="setRetransmissionState" parameterType="java.util.HashMap">
    UPDATE
        CS_APP_RELATION
    SET
        IS_RETRANSMISSION = '1',
        IS_RETRANSMITTING = '1',
        RETRANSMISSION_ID = #{retransmissionId}
    WHERE 
        SEQUENCE_ID = #{sequenceId}
</update>

<insert id="insertRetransimssion" parameterType="java.util.HashMap">
    INSERT
    INTO
        CS_MODEL_RETRANSMISSION
        (
            RETRANSMISSION_ID,
            RETRANSMISSION_SOURCE,
            RETRANSMISSION_TARGET,
            OPERATOR_ID,
            RETRANSMISSION_TIME,
            RETRANSMISSION_SEQ,
            RETRANSMISSION_POSTSCRIPT,
            RETRANSMISSION_STATE,
            RETRANSMISSION_TYPE
        )
    VALUES
        (
            #{retransmissionId},
            '',
            #{targetId},
            #{operatorID},
            TO_CHAR(sysdate,'yyyy-mm-dd hh24:mi:ss'),
            '',
            '',
            '0',
            '1'
        )
</insert>

私を混乱させたのは、 List の長さに関係なく、すべての挿入は成功しますが、更新効果は1回だけであり、JVMは例外をスローしません。すべてがうまくいくことを示しています。問題は何ですか?

4

0 に答える 0