• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

1차 캐시와 동일성 보장

23.01.09 18:38 작성 23.01.11 20:16 수정 조회수 4.51k

0

[질문 내용]

책 62페이지 강의 내용 16분 50초에 나오는 페이지에서 DB isloation Level이 Read Commit이어도 애플리케이션에서 Repeatable Read를 보장한다고 했는데요.

다른 Entity Manager가 update를 했다면 그 경우에는, 다른 값이 조회가 되는 것인가요?

 

ex) EntityManager A, EntityManager B(혹은 다른 서버, DB에서 직접 쿼리 발생)

  1. A select

  2. B update, commit

  3. A select

    이렇게 되는 경우, 1과 3의 값은 같으나 2의 값은 다른 것인지 궁금합니다.

    B서버는 이미 커밋을 진행해서 DB에서의 값은 바뀌었으나, A서버는 DB에서 조회하지 않고 자신의 영속성 컨텍스트에서 조회했으므로 1번과 같은 값을 읽는건가요?

답변 1

답변을 작성해보세요.

0

안녕하세요. 김지윤님

자신의 영속성 컨텍스트에서 조회했으므로 1번과 같은 값을 읽게 됩니다. 그리고 이것이 바로 Repeatable Read입니다.

추가로 더 궁금한 내용은 다음을 참고해주세요.

https://www.inflearn.com/questions/17498

감사합니다.