同个数据库连接可以直接开启事务,保证数据的一致性,要么一起提交要么全局回滚。
但是同个业务逻辑中涉及对多个不同数据库的数据更新,也需要保证不同数据库连接处于同一个事务管理中,确保最终要么全部提交成功要么全部回滚。
一、在系统应用层面,
一般是每个数据库连接配置一个事务管理器,多个数据库就会有多个事务管理器,各个事务管理器独自保证自己数据库内的事务。
如下:aDB、bDB、cDB分别更新三个数据库的数据:
@Transactional("?")
public void commit() {
aDB.update()