Appearance
数据库异常如何处理
service层调用数据库操作接口时,update、insert、delete操作时,如果需要更新多个表或者有多个更更新操作,则需要使用事务,在方法上使用注解@Transactional
例如下面的update操作
java
/**
* 修改组织变更申请记录
*
* @param orgApplyForm 组织变更申请表单参数
* @return
*/
@Transactional
public Integer updateApply(OrgApplyForm orgApplyForm ) {
Long uid = MyTool.getMyUid();
BizTool.ASSERT_NOLOGIN.notNull(uid, "用户没有登录,请重新登录!");
OrgApplyMo orgApplyMo = orgApplyMapper.selectById(orgApplyForm.getApplyId());
BizTool.ASSERT_DB.notNull(orgApplyMo, "找不到变更申请");
orgApplyMo.setStatus(orgApplyForm.getStatus());
orgApplyMo.setMessage(orgApplyForm.getMessage());
orgApplyMo.setUpdatedBy(uid);
orgApplyMo.setUpdateTime(LocalDateTime.now());
int result = orgApplyMapper.updateById(orgApplyMo);
if(result > 0 && orgApplyMo.getStatus() == 1) { // 审批通过
OrgMo orgApply = JacksonTool.fromJson(orgApplyMo.getContent(), OrgMo.class);
OrgMo orgMo = orgMapper.selectById(orgApplyMo.getOrgId());
BeanUtils.copyProperties(orgApply, orgMo);
result = orgMapper.updateById(orgMo);
}
return result;
}
/**
* 修改组织变更申请记录
*
* @param orgApplyForm 组织变更申请表单参数
* @return
*/
@Transactional
public Integer updateApply(OrgApplyForm orgApplyForm ) {
Long uid = MyTool.getMyUid();
BizTool.ASSERT_NOLOGIN.notNull(uid, "用户没有登录,请重新登录!");
OrgApplyMo orgApplyMo = orgApplyMapper.selectById(orgApplyForm.getApplyId());
BizTool.ASSERT_DB.notNull(orgApplyMo, "找不到变更申请");
orgApplyMo.setStatus(orgApplyForm.getStatus());
orgApplyMo.setMessage(orgApplyForm.getMessage());
orgApplyMo.setUpdatedBy(uid);
orgApplyMo.setUpdateTime(LocalDateTime.now());
int result = orgApplyMapper.updateById(orgApplyMo);
if(result > 0 && orgApplyMo.getStatus() == 1) { // 审批通过
OrgMo orgApply = JacksonTool.fromJson(orgApplyMo.getContent(), OrgMo.class);
OrgMo orgMo = orgMapper.selectById(orgApplyMo.getOrgId());
BeanUtils.copyProperties(orgApply, orgMo);
result = orgMapper.updateById(orgMo);
}
return result;
}