自定义异常回滚数据库保证事务原子性

tech2024-06-23  75

自定义异常回滚数据库保证事务原子性

1.事务注解2.自定义异常

1.事务注解

将需要操作更改数据库表的一段代码封装到一个方法中,方法加事务注解 : @Transactional(rollbackFor = Exception.class)

2.自定义异常

自定义一个异常类,再上面的方法中,如果由于业务逻辑需要回滚数据,在for循环更改数据库表的代码中try抛出这个异常并用catch捕获,然后在catch中手动回滚数据: TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

public class XXXException extends RuntimeException { /** * 异常code */ private String code; /** * 异常信息 */ private String message; private XXXException(){ } /** * 构造方法 * @param code * @param message */ public XXXException(String code, String message) { this.message = message; this.code = code; } }
最新回复(0)