该规则标记了使用 Spring 废弃的锁定相关异常的 Java 代码 CannotSerializeTransactionException 和 DeadlockLoserDataAccessException.
从 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");
}
}
有关更多信息,请参阅以下资源: