작성
·
203
0
영한님 안녕하세요!
Spring Transactional 어노테이션을 사용하면서 궁금한 점이 생겼는데요.
readOnly = true를 활성화 한 경우 제가 알기로는 JPA 하이버네이트에서는 flush mode를 manual로 변경해 dirty checking 을 하지 않도록 할 수 있다고 알고 있는데요.
혹시나 read only가 true인 경우 isolation level이 변경되거나 하는 일도 가능한 걸까요?
답변 3
1
안녕하세요. 레알이님
JPA의 영속성 컨텍스트를 사용하면 영속성 컨텍스트에서 다시 읽기를 해도 REPETABLE READ와 같은 효과를 얻을 수 있습니다. 다시 읽어도 1차 캐시에서 읽게 되니까요. 그런데 이게 readOnly이든 아니든 모두 적용되기 때문에 isolation level은 무관합니다.
감사합니다.
1
0
답변 주셔서 감사합니다!
JPA를 사용하면 1차 캐시를 통해서 REPETABLE READ 효과를 얻을 수 있다고 하셨던 것 같은데요.
그러면 readOnly를 사용할 경우 아래 같이 트랜잭션 isolation level을 READ_COMMITTED로 변경하는 등의 최적화도 가능한 걸까요?
@Transactional(readOnly = true, isolation = Isolation.READ_COMMITTED)