찾다

 >  Q&A  >  본문

java - 봄에 트랜잭션에서 멀티스레딩이 활성화된 경우 예외를 포착하고 롤백하는 방법은 무엇입니까?

처리 속도를 높이기 위해 트랜잭션에 2개의 스레드를 사용한다고 가정해 보겠습니다. userDao.addOrg() 메서드에서 RuntimeException이 발생하면 트랜잭션이 롤백되지 않고 오류가 포착되지 않습니다. 어떻게 해야 하나요?

으아악
女神的闺蜜爱上我女神的闺蜜爱上我2727일 전1651

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

  • 世界只因有你

    世界只因有你2017-06-12 09:28:37

    @Transactional은 단일 스레드 트랜잭션만 제어할 수 있으므로 하위 스레드는 add 메서드의 트랜잭션에 의해 제어되지 않습니다. 하위 스레드가 호출한 메서드에서 새 트랜잭션을 시작하고 롤백할 수 있습니다.

    트랜잭션 제어 메서드를 호출하기 위해 하위 스레드를 활성화합니다.

    으아악 으아악

    @Transactional은 프록시를 통해 구현되므로 addMethod는 새 클래스 AddOperation에 배치되어야 하며 add 메소드가 있는 클래스에는 배치할 수 없습니다.

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