작성
·
151
0
안녕하세요!
오랜만에 다시 보다가 갑자기 궁금한 부분이 생겨서 질문드립니다!
1. JpaRepository를 이용하면 simpleJpaRepository를 사용하게 되는 것으로 기본적으로 @Transactioanal(readOnly=true)와 @Repository를 달고 있는 것으로 생각하면 될까요?
2. 저는 서비스 계층에서만 @Transactional을 붙여서 사용하고 있는데 구글링하다보니 Repository 계층에서도 @Transactional을 사용하는 경우가 존재하던데 Repository에서 @Transactional을 사용하는 경우는 어떨 때 사용하는 것인가요?
답변 1
2
안녕하세요. 준성님
1. JpaRepository를 이용하면 simpleJpaRepository를 사용하게 되는 것으로 기본적으로 @Transactioanal(readOnly=true)와 @Repository를 달고 있는 것으로 생각하면 될까요?
-> simpleJpaRepository는 조회는 @Transactioanal(readOnly=true), 데이터 변경이 필요한 곳에는 @Transactioanal이 붙어있습니다. 코드를 한번 열어보시면 바로 이해가 되실거에요.
2. 저는 서비스 계층에서만 @Transactional을 붙여서 사용하고 있는데 구글링하다보니 Repository 계층에서도 @Transactional을 사용하는 경우가 존재하던데 Repository에서 @Transactional을 사용하는 경우는 어떨 때 사용하는 것인가요?
-> JPA의 모든 데이터 변경은 트랜잭션 안에서 이루어져야 합니다. 서비스 없이 컨트롤러에서 바로 리포지토리를 통해서 데이터를 변경할 때 필요합니다.
감사합니다.