java - 스프링 트랜잭션이 롤백되지 않았습니다.
为情所困
为情所困 2017-05-17 10:07:12
0
2
597

1. Spring 트랜잭션은 롤백되지 않습니다. 온라인 방법을 모두 시도했지만 소용이 없습니다.
2. 구성은 다음과 같습니다.

1.spring.xml:

으아악

2.springmvc.xml

으아악

3.spring-hibernate.xml

으아악

4.컨트롤러

으아악

5.서비스

으아악

6.baseDao

으아악

디렉토리 구조:

하나님께 도움을 구해 하루동안 잘 적응하고 있습니다.

为情所困
为情所困

모든 응답(2)
伊谢尔伦

보면 컨트롤러가 아닌 서비스 인터페이스에서 트랜잭션을 관리하는군요
던진 예외는 컨트롤러에 있으니 당연히 트랜잭션은 롤백되지 않습니다

서비스 구현 클래스에 저장을 시도한 후 저장이 성공했는지 확인하기 위해 예외를 발생시킵니다

PS: MySQL에는 두 개의 스토리지 엔진(일반적으로 사용됨)이 있습니다. 하나는 InnoDB이고 다른 하나는 MyISAM입니다. 전자는 행 수준 잠금, 트랜잭션 및 외래 키를 지원하지만 후자는 이를 지원하지 않습니다

大家讲道理

위에서 말한 대로입니다. Spring 트랜잭션은 서비스 계층에서 작동합니다. 서비스 메서드에서 예외가 발생하면 트랜잭션이 롤백됩니다. 따라서 올바른 테스트 방법은 서비스 계층 메서드에서 예외를 발생시키는 것입니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿