【发布时间】:2018-02-21 13:13:11
【问题描述】:
我的服务在 2 个数据库中进行删除,oracle 和 postgresql。当一个存储库抛出异常时,另一个不会回滚。
例子:
public MyService {
@Autowired private OracleRep oracleRep;
@Autowired private PostgreRep postgreRep ;
@Transactional
public void delete(Long id){
oracleRep.delete(id);
postgreRep.delete(id);
}
}
public OracleRepImpl {
@Autowired private NamedParameterJdbcTemplate namedParameterJdbcTemplate ;
public void delete(Long id){
//do delete
}
}
public PostgreRepImpl {
@Autowired private @Qualifier("postgresql")NamedParameterJdbcTemplate namedParameterJdbcTemplate ;
public void delete(Long id){
//do delete
}
}
我猜@Transactional 注释不共享数据库之间的事务。
我该如何实现这种行为?
【问题讨论】: