私のプロジェクトでは、私の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は例外をスローしません。すべてがうまくいくことを示しています。問題は何ですか?