Rollback은 @Transactional 어노테이션으로 보통 하게 되는데
UncheckedException인 RuntimeException때 default로 rollback된다.
CheckedException인 다른 Exception은 throw를 해도 rollback되지 않는다.
NullPointerException이 Runtime Exception의 예.
@Transactional 어노테이션 방식과
EntityManager를 써서 begin, commit, rollback하는 방식이 있다.
한 서비스에서만 가능한듯 하다.
서비스마다 IoC컨테이너가 다르고 빈을 공유하지 않기 때문인듯 하다.
같은 트랜잭션으로 처리가 안 되는 것 같다.
한번 간단한 예제를 만들어서 시도해봐야겠다.
woowabros.github.io/experience/2019/01/29/exception-in-transaction.html
응? 이게 왜 롤백되는거지? - 우아한형제들 기술 블로그
이 글은 얼마 전 에러로그 하나에 대한 호기심과 의문으로 시작해서 스프링의 트랜잭션 내에서 예외가 어떻게 처리되는지를 이해하기 위해 삽질을 해본 경험을 토대로 쓰여졌습니다. 스프링의
woowabros.github.io
'Architecture > MSA' 카테고리의 다른 글
Micro Service란? (0) | 2021.03.22 |
---|---|
Transaction처리는 어떻게? (0) | 2021.03.22 |