찾다

 >  Q&A  >  본문

java - 스프링 트랜잭션이 롤백되지 않았습니다.

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

1.spring.xml:

으아악

2.springmvc.xml

으아악

3.spring-hibernate.xml

으아악

4.컨트롤러

으아악

5.서비스

으아악

6.baseDao

으아악

디렉토리 구조:

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

为情所困为情所困2781일 전577

모든 응답(2)나는 대답할 것이다

  • 伊谢尔伦

    伊谢尔伦2017-05-17 10:09:12

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

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

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

    회신하다
    0
  • 大家讲道理

    大家讲道理2017-05-17 10:09:12

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

    회신하다
    0
  • 취소회신하다