인프런 커뮤니티 질문&답변
트랜잭션 격리수준
작성
·
499
퀴즈
56%나 틀려요. 한번 도전해보세요!
JPA에서 영속성 컨텍스트는 어떤 역할을 하는 핵심 개념일까요?
객체와 테이블의 매핑 정보 정의
엔티티를 관리하고 DB와 동기화하는 환경 제공
SQL 쿼리 직접 작성 및 실행
데이터베이스 연결 풀 관리
답변 2
1
김영한
지식공유자
안녕하세요. 인철님
REPEATABLE_READ라는 격리 수준은 한번 읽은 내용을 동일하게 계속 읽을 수 있다는 뜻입니다. 별도의 락을 사용하는 것은 아니고 영속성 컨텍스트의 개념 덕분에 이것이 자동으로 적용됩니다.
Q: 그리고 혹시 추가적으로 어떻게 REPEATABLE READ를 보장해주는 지 알 수 있는지에 대한 자료는 hibernate 공식문서에 가면 있을까요?
A: https://docs.jboss.org/hibernate/orm/4.3/manual/en-US/html/ch13.html
감사합니다.






REPEATABLE READ의 핵심은 락이라기 보다는 하나의 트랜잭션 안에서 읽은 데이터를 계속 같은 데이터 값으로 읽을 수 있다는 점입니다. 이것을 데이터베이스에 따라서 어떻게 구현하는가가 달라집니다. 생각하신 것 처럼 락으로 주로 구현하겠지요?
그런데 JPA는 1차 캐시가 있기 때문에 락을 걸지 않고도 1차 캐시 덕분에 REPEATABLE READ의 효과를 볼 수 있습니다.
감사합니다.