CannotSerializeTransactionException 和 自 起已被弃用 DeadlockLoserDataAccessException Spring 6.0.3

该规则标记了使用 Spring 废弃的锁定相关异常的 Java 代码 CannotSerializeTransactionExceptionDeadlockLoserDataAccessException.

从 Spring Framework 6.0.3 开始,由于 JDBC 驱动程序的语义不一致,这些异常已被弃用。 建议开发人员使用 CannotAcquireLockException 代替,它提供了一种统一的、框架一致的方式来处理悲观锁定和事务隔离故障。

下面的示例显示了将被标记的无效用法:


import org.springframework.dao.CannotSerializeTransactionException;
import org.springframework.dao.DeadlockLoserDataAccessException;
public class InvalidLockingUsage {
    public void simulateCannotSerialize() {
    	throw new CannotSerializeTransactionException("Simulated serialization failure");
    }
    public void simulateDeadlock() {
    	throw new DeadlockLoserDataAccessException("Simulated deadlock");
    }
}

下面的示例显示了有效的迁移用法:


import org.springframework.dao.CannotAcquireLockException;
public class ValidLockingUsage {
    public void method() {
    	throw new CannotAcquireLockException("Simulated issue");
    }
}

有关更多信息,请参阅以下资源: