spring
Spring Data Jpa에서 데이터베이스별 lock timeout 설정 테스트
특정 업무의 동시성 이슈를 해결하기 위해서 비관적 락(Pessimistic Lock)을 사용하여 select for update로 조회를 하는 경우가 있다. 이는 여러 쓰레드의 경합이 발생하는 경우에 DB 차원에서 단일 쓰레드에 락을 거는 방법이다. spring data jpa에서 비관적 락을 사용하려면 아래와 같이 @Lock을 추가하면 된다. @Lock(LockModeType.PESSIMISTIC_WRITE) ProductJpo findProductJpoById(long id); 이렇게 추가되면 실행되는 SQL에 for update가 붙어서 실행된다. SELECT * FROM product_jpo WHERE id = 1 FOR UPDATE 이런 경우에, 2개의 쓰레드가 동시에 요청을 하면 첫 번째 락을..
2023. 9. 7. 20:11