@Transactional使用方法代码讲解

发布时间:2024年01月24日
@Transactional(rollbackFor = Exception.class)
@Override
public R deleteReview(List<String> ids) {}


@Transactional(rollbackFor = Exception.class)
@Override
public R deleteReview(List<String> ids) throws Exception{}

这两种写法的区别在于,第二种写法明确地声明了该方法可能会抛出异常,而第一种写法没有。因此,当代码出现异常时,第一种写法不会回滚事务,而第二种写法会回滚事务。

具体解释如下:

@Transactional 注解表示将该方法标记为一个事务方法。当该方法执行时,如果发生异常,事务会自动回滚,以保证数据的一致性。rollbackFor = Exception.class 表示将所有异常都视为回滚事务的触发条件。

在第一种写法中,方法签名中并没有声明该方法可能会抛出异常,因此代码出现异常时,事务并不会被回滚。这可能会导致数据的不一致性。

而在第二种写法中,方法签名中声明了该方法可能会抛出异常,因此代码出现异常时,事务会被回滚,数据得到了保障。

因此,在使用 @Transactional 注解时,建议明确地声明该方法可能会抛出的异常,以保证事务的正确回滚。

文章来源:https://blog.csdn.net/weixin_44060488/article/details/135830825
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。