강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của rlawls19915543
rlawls19915543

câu hỏi đã được viết

Trong thực tế! Sử dụng Spring Boot và JPA1 - Phát triển ứng dụng Web

Phát triển entity Đơn hàng, Sản phẩm đơn hàng

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

Viết

·

294

0

영한님 안녕하세요!

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

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

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

java웹앱JPAspringspring-boot

Câu trả lời 3

1

yh님의 프로필 이미지
yh
Người chia sẻ kiến thức

안녕하세요. 레알이님

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

감사합니다.

1

yh님의 프로필 이미지
yh
Người chia sẻ kiến thức

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

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

감사합니다.

0

rlawls19915543님의 프로필 이미지
rlawls19915543
Người đặt câu hỏi

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

Hình ảnh hồ sơ của rlawls19915543
rlawls19915543

câu hỏi đã được viết

Đặt câu hỏi