gpt4 book ai didi

java - 如果抛出异常,@Transactional 不起作用

转载 作者:行者123 更新时间:2023-11-29 06:46:03 25 4
gpt4 key购买 nike

这是我的 Spring Boot 应用程序:

@SpringBootApplication
@EnableTransactionManagement(proxyTargetClass=true)
public class WhizhopApplication {

public static void main(String[] args) {

SpringApplication.run(WhizhopApplication.class, args);
}
}

这是我的服务:

@Service
public class OrderService {
@Autowired
BillRepository billRepo;

@Transactional(rollbackFor = Exception.class)
public BaseDTO saveKot(BillDTO billDto) {
try {
//business logic
billRepo.save();
} catch (Exception e) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

}
}
}

如果发生任何异常,事务不会回滚。

最佳答案

如果您希望使用 @Transactional 处理异常,则不应捕获异常。

另请注意:

  1. @Transactional 仅适用于公共(public)方法
  2. Spring’s @Transactional does not rollback on checked exceptions

关于java - 如果抛出异常,@Transactional 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49378404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com