강의

멘토링

커뮤니티

Inflearn Community Q&A

rlawls19915543's profile image
rlawls19915543

asked

Real-world! Spring Boot and JPA Utilization 1 - Web Application Development

Order and OrderItem Entity Development

@Transactional(readOnly = true) 에 대한 질문이 있습니다!

Written on

·

294

0

영한님 안녕하세요!

Spring Transactional 어노테이션을 사용하면서 궁금한 점이 생겼는데요. 

readOnly = true를 활성화 한 경우 제가 알기로는 JPA 하이버네이트에서는 flush mode를 manual로 변경해 dirty checking 을 하지 않도록 할 수 있다고 알고 있는데요.

혹시나  read only가 true인 경우 isolation level이 변경되거나 하는 일도 가능한 걸까요?

java웹앱JPAspringspring-boot

Answer 3

1

yh님의 프로필 이미지
yh
Instructor

안녕하세요. 레알이님

JPA의 영속성 컨텍스트를 사용하면 영속성 컨텍스트에서 다시 읽기를 해도 REPETABLE READ와 같은 효과를 얻을 수 있습니다. 다시 읽어도 1차 캐시에서 읽게 되니까요. 그런데 이게 readOnly이든 아니든 모두 적용되기 때문에 isolation level은 무관합니다.

감사합니다.

1

yh님의 프로필 이미지
yh
Instructor

안녕하세요. 레알이님^^

isolation level은 @Transactional에 별도의 설정이 있습니다. 따라서 변경되지 않습니다.

감사합니다.

0

rlawls19915543님의 프로필 이미지
rlawls19915543
Questioner

답변 주셔서 감사합니다!
JPA를 사용하면 1차 캐시를 통해서 REPETABLE READ 효과를 얻을 수 있다고 하셨던 것 같은데요.
그러면 readOnly를 사용할 경우 아래 같이 트랜잭션 isolation level을 READ_COMMITTED로 변경하는 등의 최적화도 가능한 걸까요?
@Transactional(readOnly = true, isolation = Isolation.READ_COMMITTED)

rlawls19915543's profile image
rlawls19915543

asked

Ask a question