[BE] refactor: 트랜잭션을 팀 컨벤션에 맞게 리팩터링 #291
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue
✨ 구현한 기능
@Transactional
추가@Transactional(propagtion=REQUIRES_NEW)
제거같은 클래스에서 findOrCreateMember 호출하고, 내부에서 save를 호출하면 save 메서드 위에 적혀있는
@Transactional
이 적용되지 않습니다.왜냐하면 스프링 트랜잭션 공식 문서에서 아래와 같은 내용이 나와있습니다.
그래서 프록시로 호출하기 때문에 같은 클래스 내부에 부모 메서드 호출 -> 자식 메서드를 호출하면 자식 메서드에 적혀있는 트랜잭션이 무시됩니다.
만약 이게 적용이 안된다면 findOrCreateMember에
@Transactional
이 아닌@Transactional(propagation=REQUIRES_NEW)
로 설정해야합니다.REQUIRES_NEW
: 부모 트랜잭션이 존재하면, 부모 트랜잭션을 중지하고, 새로운 트랜잭션을 생성하고 실행함. 새로운 트랜잭션이 종료되었으면 부모 트랜잭션을 다시 실행함📢 논의하고 싶은 내용
🎸 기타
⏰ 일정