项目中需要使用事务,但是配置了事务扫描然后使用@Transactional注解后,事务不生效
最后决定使用手动回滚
由于事务是遇到异常后才会回滚,但是在try…catch…之后事务捕获不到
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
最终在service中使用
public class UserService{
@Transactional(rollbackFor = Exception.class)
public boolean userRegistration(User user){
try{
......
} catch(Exception e){
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
throw e;
}
}
}

在项目中,遇到使用@Transactional注解配置的事务不生效的问题,因此转向手动回滚事务。由于异常处理机制,事务通常在遇到异常时才会自动回滚,但在try...catch...结构中,事务无法捕获到异常,导致无法正常回滚。解决方案是在Service层进行手动事务回滚操作。
6601

被折叠的 条评论
为什么被折叠?



