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 적용 안됨