logo

Pessimistic Lock in JPA

language-logoHibernate
language-logoJava
language-logoJUnit
language-logoSpring

• 비관적 락(pessimistic lock)은 트랜잭션 충돌을 예상하여 미리 데이터에 대한 락을 선점하는 방식으로, JPA에서는 LockModeType을 사용하여 설정할 수 있다.
• Spring Data JPA에서는 @Lock 애너테이션을 사용하여 잠금 모드를 설정하며, 테스트 코드를 작성하여 비관적 락 기능 동작을 확인할 수 있다.
• 제목이 Hello World인 포스트 엔티티를 찾아 데이터 락을 점유하고, 내용을 변경한 후 7초 대기하여 오염 감지를 통해 업데이트하는 트랜잭션1의 작업
• 트랜잭션2에서 제목이 Hello World인 포스트 엔티티를 찾아 내용을 변경하려 하지만, 다른 트랜잭션에 락이 걸린 데이터로 인해 타임아웃 예외가 발생하며 예외 처리 과정을 거치는 작업

thumbnail
북마크
공유하기
신고하기
15분 분량
조회수 184
profile-imageJunhyunny
2년 전
Copyright © 2025. Codenary All Rights Reserved.