목록JPA (2)
jiny
spring boot 2.7.7 사용 , java 11 ( 스프링 부트 버전이 3.0 이상일 경우 java 18 선택 )build.gradle 파일에 아래처럼 등록합니다 plugins 영역에 추가id 'com.ewerk.gradle.plugins.querydsl' version '1.0.10' dependencies 영역에 추가//querydsl 추가implementation "com.querydsl:querydsl-jpa:${queryDslVersion}"implementation "com.querydsl:querydsl-apt:${queryDslVersion}" 빈부분에 추가buildscript { ext { queryDslVersion = "5.0.0" }}//queryds..
좋아요와 같은 기능은 트랜잭션 2개가 동시에 시작되면 조회후 값을 변경시키는 것이라 트랜잭션 격리수준으로 해결이 불가능하다. (아마 2번의 갱실 분실 문제? 라고 불리는 것 같다) 동시에 값을 변경하는 경우에는 lock 걸어서 해결해야하며, JPA를 사용하는 경우 낙관적락을 추가로 사용할 수 있다. 비관적 락은 데이터 베이스에서 제공하는 select for update 구문을 실행시키는 것과 동일하다 Post 엔티티에서 좋아요 개수를 표시하는 Star 필드를 표시하고 있고 좋아요(star)를 올리기 위해서는 post 조회를 해야한다 그래서 Post를 select 할때 select for update 구문으로 락을 걸 수 있도록 비관적 락을 사용한다 방법1. 비관적 락 결과 방법2. 낙관적 락 엔티티에 v..