项目中需要使用事务,但是配置了事务扫描然后使用@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;
}
}
}