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

임현강님의 프로필 이미지

작성한 질문수

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

상품 서비스 개발

@Transactional을 Service에서 처리하는 이유?

21.03.13 21:22 작성

·

917

7

@Transact ional의 사용 이유에 대해서는 이해가 되었습니다만, 

왜 굳이 Service에서 그 처리를 해주는지 이유를 모르겠습니다.

개인적인 생각으로는 직접적으로 em을 사용하는 Repository에서 해주는 게 더 적절하지 않을까 싶습니다.

Service에서 사용해야만 하는 특별한 이유가 있을까요?

답변 1

11

김영한님의 프로필 이미지
김영한
지식공유자

2021. 03. 14. 17:09

안녕하세요. 현강님

비즈니스 로직은 보통 여러 리포지토리를 호출하는데요.

만약에 해당 비즈니스 로직에 문제가 발생했을 경우에는 해당 비즈니스 로직과 관련된 부분을 모두 롤백해야 합니다.

그래서 일반적으로 비즈니스 로직의 시작점인 서비스에 트랜잭션을 사용합니다.

감사합니다.

임현강님의 프로필 이미지
임현강
질문자

2021. 03. 14. 17:19

아~ 바로 이해가 되네요. 감사합니다!!