异常如下:com.jfinal.plugin.activerecord.ActiveRecordException: com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Deadlock found when trying to get lock; try restarting transaction
at com.jfinal.plugin.activerecord.DbPro.update(DbPro.java:283)
at com.jfinal.plugin.activerecord.Db.update(Db.java:206)
at com.tmbj.api.service.insure.TmInsureFenqiService$1.run(TmInsureFenqiService.java:1310)
at com.jfinal.plugin.activerecord.DbPro.tx(DbPro.java:694)
at com.jfinal.plugin.activerecord.DbPro.tx(DbPro.java:748)
at com.jfinal.plugin.activerecord.Db.tx(Db.java:460)
at com.tmbj.api.service.insure.TmInsureFenqiService.updateFenqiLineStateById(TmInsureFenqiService.java:1297)/**
* 用户提交申请
*/
public CommonResult updateFenqiLineStateById(Record record){
CommonResult commonResult = new CommonResult();
commonResult.setCodeAndMsg(Constant.SUCCESS_CODE, Constant.SUCCESS_MSG);
String fenqiLineIds=record.get("fenqiLineIds");
Long insureInfoId=record.getLong("insureInfoId");
String[]fenqiLineIdsStr=fenqiLineIds.split(",");
//默认待支付
Integer state = 5;
for (String fenqiLineId:fenqiLineIdsStr){
Record lineRecord=Db.findById("tm_insure_fenqi_line",fenqiLineId);
// 待审核
if (lineRecord.getInt("insureType") == 1 || lineRecord.getInt("fenqi") == 1) {
state = 3;
}
String sql="update tm_insure_fenqi_line t set t.state=?,t.modifyTime=?,t.modefier=? where id=?";
int bCount= Db.update(sql,state,new Date(),insureInfoId.intValue(),fenqiLineId);
if (bCount>0) {
//修改成功调用推送方法
******************推送省略*************************
} else {
commonResult.setCodeAndMsg(ErrorCode.ERROR_CODE, "用户提交申请失败!");
}
ommonResult.setData(record);
}
return commonResult;
}