강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

d1215님의 프로필 이미지
d1215

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

수업 자료

@Transaction 질문 있습니다.

작성

·

208

0

JPA 강의에서는 

1. EntityManager 에서 Transaction을 얻는다.

2. 트랜잭션을 수행하고 em 으로 영속성에 저장 

3. commit 또는 flus 사용 

tx.begin()

em.persist(object) 

실젝 프로젝트에서는

1. service 에 @Transaction을 걸어서 사용하고 있습니다.

의문이 드는건

실제로 persist 하는 부분은 repository 인데

repository 에 @Transaction을 거는게 아니라.

service에 @Transaction을 거는 이유가 궁금합니다.

답변 1

0

안녕하세요. d1215 님, 공식 서포터즈 codesweaver 입니다.

.

애플리케이션 구조상 Repository 에 진입하기 전에 Service를 거치게 됩니다.이때 Service에서 Transaction을 시작하게 되면 이후의 모든 과정이 Transaction 안에서 처리 되는 것입니다. 공원을 입장할 떄 입장권을 구매(트랜잭션 시작)하는 것과 같다고 생각하시면 됩니다. 공원을 퇴장(트랜잭션 종료)하기 전까진 하나의 Transaction으로 처리 됩니다.

.

감사합니다.

d1215님의 프로필 이미지
d1215

작성한 질문수

질문하기