스프링을 모르니 이런 삽질이..
트랜잭션 처리 안에서 내부 트랜잭션 행위 대해 try catch 로 예외처리를 하였으나
'Transaction rolled back because it has been marked as rollback-only' 메세지로 날 괴롭히던 찰라..우아한형제들 기술 블로그를 통해 왜 그런 현상이 발생하는지 알게 되었다.
요약 하자면 첫 트랜잭션 안에서 다른 트랜잭션 메서드를 호출 하게 될때, RuntimeException 이 일어날 경우 전체 가 롤백되기 때문에 커밋할 수 없다는것!
우형의 글에 따라 DataSourceTransactionManager를 직접 관리하기때문에 PROPAGATION_NESTED처리..
이게 아니더라도 setGlobalRollbackOnParticipationFailure(false) 으로도 처리 가능하다
참고 : woowabros.github.io/experience/2019/01/29/exception-in-transaction.html
'JAVA > Spring Framework' 카테고리의 다른 글
[펌] Spring 환경에서 Spring Boot 마이그레이션 하기 (0) | 2022.05.11 |
---|---|
@JsonProperty 사용법[펌] (0) | 2022.04.25 |
남궁성님 스프링 강좌 자료 git 링크 (0) | 2022.04.07 |
Jackson ObjectMapper writeValueAsString 호출 시 대소문자 구분 없애기 (0) | 2022.04.06 |
내가 만든 클래스의 new 인스턴스로 @Autowired 된 객체를 사용하고자 하는 경우(Bean 으로 등록된 객체가 아니면 null임) (0) | 2019.08.28 |