四川省省建设厅网站,重庆市两江新区建设管理局网站,用lamp搭wordpress,网站建设资料百度云说明#xff1a;在一些复杂的业务情景#xff0c;比如我们需要在一个订单审核通过后#xff0c;在将数据库状态修改的同时#xff0c;将订单与订单详细这两条数据写入到另一个数据库中。我们就可以通过在配置文件中#xff0c;配置多数据源#xff0c;然后通过在Mapper的…说明在一些复杂的业务情景比如我们需要在一个订单审核通过后在将数据库状态修改的同时将订单与订单详细这两条数据写入到另一个数据库中。我们就可以通过在配置文件中配置多数据源然后通过在Mapper的方法上加DS注解来实现这样的业务。
spring:datasource:......dynamic:datasource:# 主要的数据库master:url: ......username: ......password: ......driver-class-name: ......# 2号数据库extends:url: ......username: ......password: ......driver-class-name: ......使用DS注解切换数据源
Mapper
public interface OrderMapper extends BaseMapperOrder {DS(extends)void saveOrder(Order order);
}问题使用了注解配置中也配置了对应的数据源但是实际操作并没有生效报数据库表不存在的错误 OverrideTransactional(rollbackFor Exception.class)public Result? orderApprove(Integer id, Integer approveStatus) {......}解决因为在Service实现类对应的方法上面加了事务注解Transactional事务在跨数据源的情况下是不会生效的去掉之后就能正常切换数据源了。