Spring data JPA 각 메소드에 대해서 @Transactional이 있다면
500
작성한 질문수 32
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.
1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)
[질문 내용]
@Transactional이 끝날 때 커밋을 해주는 것으로 알고 있습니다. 그리고 spring data jpa 메소드마다 transactional이 있는 것으로 알고 있습니다.
그렇다면 service 에서 transactional로 선언되어 있다고 하더라도 service의 한 메소드 안에서 여러개의 spring data jpa 메소드가 사용될 때 service 메소드 단위가 아닌 spring data jpa 메소드마다 트랜잭션이 발생하는 문제가 생기지 않나요?
답변 1
0
안녕하세요. 김진현님, 공식 서포터즈 y2gcoder입니다.
해당 부분은 트랜잭션 전파와 관련이 있는 질문으로 보여집니다.


영한님의 DB2의 트랜잭션 전파1 - 기본 챕터의 강의 자료 중 일부입니다. 외부 트랜잭션 코드를 service 코드, 내부 트랜잭션 코드를 spring data jpa 코드로 대응해서 이해해주시면 될 것 같습니다.
service가 신규 트랜잭션을 시작하고 spring data jpa 의 메서드들을 호출하면 spring data jpa 의 메서드들은 사실 따로 물리적인 트랜잭션을 생성하지 않고 기존 트랜잭션에 참여하게 됩니다. 영한님께서는 신규 트랜잭션을 물리 트랜잭션, 내부 트랜잭션들을 논리 트랜잭션이라는 용어로 구분하셨는데요, 물리 트랜잭션인 서비스 로직에서 로직이 끝날 때 실제 데이터베이스에 커밋이 되는 것이고, 내부에 있던 spring data jpa 메서드들에서 로직이 끝날 때는 간단하게는 아무것도 하지 않는다고 보시면 더 이해가 편하실 것 같습니다.
해당 부분은 영한님의 DB2편에서 트랜잭션 전파와 관련된 부분을 참고해주시면 훨씬 이해가 더 잘 되실 거라고 생각합니다. :)
감사합니다.
existsByUserIdAndProjectId vs existsByUserAndProject 중 어떤 방식이 적절할까요?
0
69
1
existsByUserIdAndProjectId vs existsByUserAndProject 중 어떤 방식이 적절할까요?
0
107
3
MemberRepository 구현체
0
57
1
pdf 표현 질문드립니다.
0
62
1
로그가 남지 않는 문제.
0
81
1
테스트 라이브러리가 강의는 junit4가 맞나요??
0
70
2
pdf 파일과 차이점이 있는 것같은데 문제 없나요?
0
72
2
@PrePersist, @PreUpdate 호출 시점 질문드립니다.
0
91
2
Sort 인터페이스는 잘 사용 안하나요?
0
52
1
스캔대상 질문드립니다.
0
46
1
하이버네이트6에서의 최적화에 이은 질문
0
85
1
save() vs saveAndFlush DB 통신 횟수
0
53
1
순수 JPA 리포지토리 코드 수정부분
0
86
2
bulk연산 후 flush하는 이유를 모르겠어요
0
152
3
bulk insert 질문입니다.
0
178
2
교만했던 것 같아요.
0
147
1
RESTful 강의는 안하시는 건지 궁금합니다.
0
147
2
동적 테이블에 대한 질문
0
86
1
영속성 전이와 연관관계
0
130
2
강의 10:25 질문
0
74
1
단건 update 질문
0
95
2
엔티티 와 도메인의 경계
0
127
1
UsernameOnlyDto 타입 type mismatch 오류
0
119
1
Projection 개념과 데이터 전달과정에 대해 질문 있습니다.
0
136
1





