try {
//得到结账流水号
String accountBalanceID = SequenceService.getNewSequenceID("account_charge_no", dataSource); //TODO:改为业务主键生成方式
ChargeBalance charge = new ChargeBalance();
charge.setAccountDate(acctDate);
charge.setAccountNo(accountBalanceID);
charge.setOperator(operatorName);
charge.setMaxRcptNo(maxRcptNo);
charge.setMinRcptNo(minRcptNo);
charge.setFreeNum(0);
charge.setChargeNum(Integer.parseInt(chargeNum));
charge.setReturnNum(Integer.parseInt(returnNum));
charge.setChargeFee(Double.parseDouble(chargeFee));
charge.setChargeCost(Double.parseDouble(chargeCost));
charge.setReturnFee(Double.parseDouble(returnFee));
charge.setXNHCharge(Double.parseDouble(XNHCharge));
//收费结账结算
AccountBalanceOfChargeService service = new AccountBalanceOfChargeService(dataSource);
service.doChargeOfBalanceByTime(hospitalID, charge, startTime, endTime);
context.addDataField(Constants.JSON_RESULT_NAME, accountBalanceID);
} catch (Exception e) {
//设置为回滚状态
this.getTransaction().setRollbackOnly(true); log.error("DoAccountOfChargeAction is Error!",e);
}
请问如果 service里面的sql没有插入成功这种事务处理可以吗?
//得到结账流水号
String accountBalanceID = SequenceService.getNewSequenceID("account_charge_no", dataSource); //TODO:改为业务主键生成方式
ChargeBalance charge = new ChargeBalance();
charge.setAccountDate(acctDate);
charge.setAccountNo(accountBalanceID);
charge.setOperator(operatorName);
charge.setMaxRcptNo(maxRcptNo);
charge.setMinRcptNo(minRcptNo);
charge.setFreeNum(0);
charge.setChargeNum(Integer.parseInt(chargeNum));
charge.setReturnNum(Integer.parseInt(returnNum));
charge.setChargeFee(Double.parseDouble(chargeFee));
charge.setChargeCost(Double.parseDouble(chargeCost));
charge.setReturnFee(Double.parseDouble(returnFee));
charge.setXNHCharge(Double.parseDouble(XNHCharge));
//收费结账结算
AccountBalanceOfChargeService service = new AccountBalanceOfChargeService(dataSource);
service.doChargeOfBalanceByTime(hospitalID, charge, startTime, endTime);
context.addDataField(Constants.JSON_RESULT_NAME, accountBalanceID);
} catch (Exception e) {
//设置为回滚状态
this.getTransaction().setRollbackOnly(true); log.error("DoAccountOfChargeAction is Error!",e);
}
请问如果 service里面的sql没有插入成功这种事务处理可以吗?
然后通过这个值来做事务的回滚操作
try {
trans.start();
AccountBalanceOfChargeService service = new AccountBalanceOfChargeService(dataSource);
service.doChargeOfBalanceByTime(hospitalID, charge, startTime, endTime);
context.addDataField(Constants.JSON_RESULT_NAME, accountBalanceID);
trans.commit(); } finally {
trans.end();
}