此規則標記 Java 使用 Spring 's 已經廢棄的鎖定相關例外的程式碼 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");
}
}
如需相關資訊,請參閱下列資源: