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

Jaesang Yoon님의 프로필 이미지

작성한 질문수

실전! 스프링 데이터 JPA

스프링 데이터 JPA 페이징과 정렬

@Transaction을 서비스, 리포지토리 계층 모두에 적용해야하나요

작성

·

150

0

Spring Data JPA의 경우 자동으로 @Transaction이 적용되는 것으로 알고있는데, 이를 사용하는 서비스 계층에도 @Transaction을 적용해야하는지 궁금합니다.

답변 1

0

안녕하세요. Jaesang Yoon님, 공식 서포터즈 OMG입니다.

서비스 단에서의 트랜잭션 선언은 해당 트랜잭션 내의 작업 단위를 하나로 묶는 역할을 합니다 😀

가령, 대표적으로 트랜잭션 예시로 자주 사용되는 은행 예시를 바탕으로 생각해본다면

내가 누군가에게 입금한다 했을 때, 내 계좌에서 돈이 빠져나가고, 입금을 받는 사람의 계좌에는 돈이 증가해야합니다. 이렇게 복수의 작업을 한 트랜잭션으로 묶어야 할 경우나, 트랜잭션의 전파 행위를 제어해야 할 때는 서비스 계층에서 @Transactional을 명시해야 합니다.

감사합니다.