CannotSerializeTransactionException et DeadlockLoserDataAccessException sont obsolètes à partir de Spring 6.0.3

Cette règle signale le code Java qui utilise les exceptions dépréciées liées au verrouillage de Spring CannotSerializeTransactionException et DeadlockLoserDataAccessException.

À partir du cadre Spring 6.0.3, ces exceptions ont été supprimées en raison de l'incohérence de la sémantique entre les pilotes JDBC. Il est conseillé aux développeurs d'utiliser CannotAcquireLockException qui offre un moyen unifié et cohérent de gérer les échecs de verrouillage pessimiste et d'isolation des transactions.

L'exemple suivant montre une utilisation non valide qui sera signalée :


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");
    }
}

L'exemple suivant montre une utilisation migrée valide :


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

Pour plus d'informations, voir les ressources suivantes :