처리 속도를 높이기 위해 트랜잭션에 2개의 스레드를 사용한다고 가정해 보겠습니다. userDao.addOrg() 메서드에서 RuntimeException이 발생하면 트랜잭션이 롤백되지 않고 오류가 포착되지 않습니다. 어떻게 해야 하나요?
으아악世界只因有你2017-06-12 09:28:37
@Transactional은 단일 스레드 트랜잭션만 제어할 수 있으므로 하위 스레드는 add 메서드의 트랜잭션에 의해 제어되지 않습니다. 하위 스레드가 호출한 메서드에서 새 트랜잭션을 시작하고 롤백할 수 있습니다.
트랜잭션 제어 메서드를 호출하기 위해 하위 스레드를 활성화합니다.
으아악 으아악@Transactional은 프록시를 통해 구현되므로 addMethod는 새 클래스 AddOperation에 배치되어야 하며 add 메소드가 있는 클래스에는 배치할 수 없습니다.