인프런 커뮤니티 질문&답변

hsg0208님의 프로필 이미지
hsg0208

작성한 질문수

스프링 DB 1편 - 데이터 접근 핵심 원리

db 락과 jpa

작성

·

304

1

안녕하세요 강의 잘듣고 있습니다

DB 락 관련하여 질문 드립니다. h2에서는 for update 문을 사용하는데 

for update 로 락을 가져와도 select 문을 통해 이전 commit 들에 대한 결과는 가져오는 것을 실험으로 확인 했었습니다.

JPA에서는 어노테이션 LOCK을 사용해서 for update 구문을 지원 하던데, 이렇게 될 경우 다음과 같은 

1. select ---- for update (세션1)

2. select ---- (세션2)

3. 커밋 (세션1)

4. 가져온 data dirty check로 인한 update (세션2) 

일 경우가 가능 한가요? (특히 4번)

가능하다면 2,4 번이 위험한 행동이 아닌가에 대해 궁금합니다.

또 실무에서는 낙관적락, 비관적락에 대해서 무엇을 더 우선순위로 택하는지 궁금합니다

감사합니다

답변 1

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. hsg0208님

JPA에서 DB락과 관련된 부분은 JPA 책 16장 트랜잭션과 락 부분을 참고해주세요.

감사합니다.

hsg0208님의 프로필 이미지
hsg0208

작성한 질문수

질문하기