spring的事务回滚@Transactional(rollbackFor = Exception.class)

当开发的时候遇到数据库的增删改的时候,需要添加事务,保证数据的一致性,如果不加事务就会造成一部分完成了,另外地一部分没有完成,造成数据不一致。spring提供了@Transactional,可以指定事务,当操作发生异常的时候,会回滚的这个方法里对数据库的操作,默认的是RuntimeException的时候会回滚,我们可以指定当遇到特定异常的时候回滚,可以通过@Transactional(rollbackFor = Exception.class)来指定,当发生异常的时候会回滚,我们也可以混成我们自定义的异常。但是这里就会出现问题了,当(rollbackFor = Exception.class)捕获到异常并且回滚之后,调用这个方法的地方怎么知道有没有回滚呢?

这里我带来了2种思路,1种是操作数据库的方法添加返回值,当返回值得结果与我们想要的不一样的时候,证明发生了异常,2是设置手动回滚,使用try catch捕获到异常,并且手动回滚,并把这次异常再次向上抛出。

大家有什么思路也可以留言沟通。

你可能感兴趣的:(java)