问题描述
我有一个在SpringBoot中构建的REST API应用程序。我有一项需要交易的服务。 这是事务管理器的配置:
@Configuration
@EnableTransactionManagement(proxyTargetClass=true)
public class mainDatabaseConfiguration {
...
@Bean(name = PersistenceConstant.main.TRANSACTION_MANAGER)
public PlatformTransactionManager mainTransactionManager(
@Qualifier(PersistenceConstant.main.ENTITY_MANAGER_FACTORY) EntityManagerFactory mainEntityManagerFactory) {
return new JpaTransactionManager(mainEntityManagerFactory);
}
}
这是需要交易的服务。
@Service
@Transactional
public class TransactionTest {
@Autowired
PackageRepository packageRepository;
@Transactional(rollbackFor = Exception.class)
public void addPackages() throws Exception {
Package pck = packageRepository.findById((long)15714).get();
pck.setWeight(pck.getWeight()+1);
packageRepository.save(pck);
pck = packageRepository.findById((long)15715).get();
pck.setWeight(pck.getWeight()+1);
packageRepository.save(pck);
if (true){
throw new Exception();
}
}
}
因此,由于异常,它应该更新这两个权重,然后回滚。但是没有回滚发生。它只是更新权重。 可能是什么问题呢?预先感谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)