반응형
비관적 락
-
격리 전략Java/JPA 2020. 10. 25. 21:09
격리 전략 JPA는 데이터 베이스 트랜잭션 격리 수준을 Read Committed을 기본으로 사용하며, 더 높은 격리 수준이 필요한 경우 낙관적 락이나 비관적 락을 사용해야 한다. 낙관적 락(Optimistic Lock) 낙관적 락은 엔티티의 Version 필드를 검사해서 버전정보를 체크하여 업데이트를 처리하는 방법이다. (애플리케이션에서 제공하는 락) 엔티티에서 버전정보로 사용할 필드에 @Version 어노테이션을 부여하고 테이블에 버전 정보로 사용할 컬럼을 생성해야 한다. UPDATE table SET col = ? Version = Version + 1 (트랜잭션이 UPDATE 할 때 마다 버전 값 증가) WHERE ID = ? AND Version = ? (버전 비교) 위의 쿼리를 실행했을 때, ..