Development Tip - Transactional(readOnly = true)
- 공부나 경험을 통해 얻은, 개발에서 활용할 내용들을 담은 포스팅
Transactional(readOnly = true)
-
우리가 쓰기 메서드나, 읽고 쓰는걸 다 하는 메서드에는 @Transactional 을 붙여준다.
-
원자성을 보장하고
-
완전한 Commit 이나 Rollback 을 하기 위해서 사용한다.
-
-
@Transactional(readOnly = true) 의 경우는 순수 읽기 전용 메서드에 붙여준다.
-
DB에 반영하는게 없으니 굳이 안적어줘도 될 거 같은데 적어주는 이유는,
-
오직 읽기 작업(SELECT)만 수행한다는 걸 명시적으로 알리기 위함도 있고,
-
JPA 의 더티체킹 변경감지가 일어나지 않아 메모리를 절약할 수 있으며,
-
트랜잭션 ID를 부여하지 않으므로 오버헤드가 일어나지 않아 성능상 이점이 생기기 때문이다.
-