@Transactional 고찰
Spring의 @Transactional은 기본적으로 AOP Proxy 를 통해 이루어 진다. 아래 그림 참조. (출처: https://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/transaction.html ) 중요한 점은 AOP Proxy 는 class 단위로 이루어 진다. 그러므로 아래와 같이 하나의 class 내부의 method call은 해당 class 외부의 최초 call인 addUser() 의 @Transactional 만 의미가 있고 proxyAddUser() 의 @Transactional 은 의미가 없다.(안붙인거와 같다) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 import org.springframework.beans.factory.annotation.Autowired ; import org.springframework.stereotype.Service ; import org.springframework.transaction.annotation.Transactional ; import test.jpa.demo.domain.User ; import test.jpa.demo.domain.UserData ; import test.jpa.demo.domain.UserDataRepository ; import test.jpa.demo.domain.UserRepository ; @Service public class UserService { @Autowired private UserRepository userRepository ; @Autowired private UserDataRepository userDataReposito...