Web Programming/SPRINGBOOT
@Transaction 사용 시 내부 메소드 간의 호출
imsseong
2020. 12. 31. 12:23
Transactional은 Proxy기반으로 동작하기 때문에 직접호출(자기 호출)은 Transaction이 적용되지 않습니다.
즉, txTest2메소드에서 txTest, txTest1을 직접 호출하는 방식으로는 두 메소드의 Transaction이 먹지 않습니다.
처음에 하셨던것처럼 Controller를 통해 txTest, txTest1을 호출하시거나
txTest, txTest1 메소드를 외부 클래스로 빼서(인터페이스 기반이어야합니다) txTest2에서 호출하는 방식으로
Transaction을 적용하시기 바랍니다.
출처: https://redgura.tistory.com/422 [우썅]
결론 : 내부 메소드 호출시 Transaction 적용 안됨