CannotSerializeTransactionException és a DeadlockLoserDataAccessException a Spring óta elavult 6.0.3

Ez a szabály megjelöli a Java kódot, amely a Spring 's deprecated locking-related exceptions (elévült zárással kapcsolatos kivételek) használatát használja CannotSerializeTransactionException és DeadlockLoserDataAccessException.

A Spring keretrendszer 6.0.3 óta ezek a kivételek elavultak a JDBC meghajtók közötti következetlen szemantika miatt. A fejlesztőknek ajánlott a CannotAcquireLockException helyett, amely egységes, keretrendszer-konzisztens módot kínál a pesszimista zárás és a tranzakcióelszigetelés hibáinak kezelésére.

A következő példa a jelzett érvénytelen használatot mutatja:


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

A következő példa az érvényes áttelepített használatot mutatja:


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

Az alábbi információforrások nyújtanak további tájékoztatást: