[Spring Data JPA] 변경되는 컬럼만 UPDATE

Jung·2021년 11월 27일
0

TIL

목록 보기
61/77
post-thumbnail

수정 기능을 구현할 때 특정 컬럼의 필드 값만 수정하고 save()를 했었다. 그런데 로그에 찍힌 쿼리문을 확인해보니 전체 컬럼에 대해 update를 했다. JPA는 update 할 때 모든 컬럼을 update 한다고 한다.

이럴 때 @DynamicUpdate를 Entity에 붙이면 변경된 값만 update 할 수 있다.

하지만 이를 사용하면 성능 오버헤드가 있다고 한다.

언제 사용해야 하는 것이 좋냐면
엔티티에 많은 컬럼이 있고 컬럼 중 몇 개만 자주 update 해야 하는 경우다. 또한 버전 없는 낙관적 잠금을 사용할 때 @DynamicUpdate를 사용해야 한다.

컬럼이 많이 없는데도 코드가 몇 줄 줄어들 것 같아서 @DynamicUpdate를 사용하려 했는데 성능상 오버헤드가 있다고 하니 사용하지 말아야겠다...

버전 없는 낙관적 잠금??
https://reiphiel.tistory.com/entry/understanding-jpa-lock

참고
https://www.baeldung.com/spring-data-jpa-dynamicupdate

profile
97kim.github.io

0개의 댓글