更新多表配置事务采取事务下沉的方式
1、dao层代码
1 2 3 4 5 6 7 8 | // 公司dao public interface ICompanyDao { int updateCompany(UserDTO user); } // 用户dao public interface IUserDao { int updateUser(UserDTO user); } |
2、事务层代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | public interface TransactionalManage { boolean updateCompanyPeople(UserDTO user); } @Service ( "transactionalManage" ) public class TransactionalManageImpl implements TransactionalManage{ @Resource private ICompanyDao companyDao; @Resource private IUserDao userDao; @Override @Transactional public boolean updateCompanyPeople(UserDTO user) { int row = companyDao.updateCompany(user); if (row <= 0 ) { return false ; } row = userDao.updateUser(user); if (row <= 0 ) { throw new BusinessException( "updateCompanyPeople:更新失败。" ); } return true ; } } |
3、service层代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | public interface ICompanyPeopleService { boolean updateCompanyPeople(UserDTO user); } @Service ( "companyPeopleService" ) public class CompanyPeopleServiceImpl implements ICompanyPeopleService { private static final Logger LOGGER = LoggerFactory.getLogger(CompanyPeopleServiceImpl. class ); @Resource private TransactionalManage transactionalManage; @Override public boolean updateCompanyPeople(UserDTO user) { boolean isSuccess = false ; try { isSuccess = transactionalManage.updateCompanyPeople(user); } catch (BusinessException e) { LOGGER.error( "updateCompanyPeople:数据更新失败。" , e); } return isSuccess; } } |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步