Toto pravidlo označuje kód Java, který používá zastaralé výjimky související se zamykáním Spring CannotSerializeTransactionException a DeadlockLoserDataAccessException.
Od verze Spring Framework 6.0.3, byly tyto výjimky zrušeny z důvodu nekonzistentní sémantiky v ovladačích JDBC. Vývojářům se doporučuje používat CannotAcquireLockException který nabízí jednotný, frameworkově konzistentní způsob řešení pesimistického zamykání a selhání izolace transakcí.
Následující příklad ukazuje neplatné použití, které bude označeno:
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");
}
}
Následující příklad ukazuje platné migrované použití:
import org.springframework.dao.CannotAcquireLockException;
public class ValidLockingUsage {
public void method() {
throw new CannotAcquireLockException("Simulated issue");
}
}
Další informace viz následující prostředky: