1. Spring 트랜잭션은 롤백되지 않습니다. 온라인 방법을 모두 시도했지만 소용이 없습니다. 2. 구성은 다음과 같습니다.
보면 컨트롤러가 아닌 서비스 인터페이스에서 트랜잭션을 관리하는군요 던진 예외는 컨트롤러에 있으니 당연히 트랜잭션은 롤백되지 않습니다
서비스 구현 클래스에 저장을 시도한 후 저장이 성공했는지 확인하기 위해 예외를 발생시킵니다
PS: MySQL에는 두 개의 스토리지 엔진(일반적으로 사용됨)이 있습니다. 하나는 InnoDB이고 다른 하나는 MyISAM입니다. 전자는 행 수준 잠금, 트랜잭션 및 외래 키를 지원하지만 후자는 이를 지원하지 않습니다
위에서 말한 대로입니다. Spring 트랜잭션은 서비스 계층에서 작동합니다. 서비스 메서드에서 예외가 발생하면 트랜잭션이 롤백됩니다. 따라서 올바른 테스트 방법은 서비스 계층 메서드에서 예외를 발생시키는 것입니다.
보면 컨트롤러가 아닌 서비스 인터페이스에서 트랜잭션을 관리하는군요
던진 예외는 컨트롤러에 있으니 당연히 트랜잭션은 롤백되지 않습니다
서비스 구현 클래스에 저장을 시도한 후 저장이 성공했는지 확인하기 위해 예외를 발생시킵니다
PS: MySQL에는 두 개의 스토리지 엔진(일반적으로 사용됨)이 있습니다. 하나는 InnoDB이고 다른 하나는 MyISAM입니다. 전자는 행 수준 잠금, 트랜잭션 및 외래 키를 지원하지만 후자는 이를 지원하지 않습니다
위에서 말한 대로입니다. Spring 트랜잭션은 서비스 계층에서 작동합니다. 서비스 메서드에서 예외가 발생하면 트랜잭션이 롤백됩니다. 따라서 올바른 테스트 방법은 서비스 계층 메서드에서 예외를 발생시키는 것입니다.