수정,삭제 쿼리 직접 작성 시 주의해야 할 점
·
🌿 Spring/JPA
1. 상황기존의 view 증가 코드에서는 dirty checking를 사용하여 view를 update하는 쿼리가 자동으로 발생하도록 코드를 작성했다. 이 경우 view가 증가하면 @EnableAuditing으로 인해 updated도 같이 변경된다는 문제가 있다.해당 문제의 해결을 위해 JPQL을 활용하여 영속성 컨텍스트(1차 캐시)를 무시하고 다이렉트로 DB에 수정 쿼리를 날리도록 했다. 이렇게 하면 쿼리가 실행될 때 JPA는 해당 엔티티의 상태를 감지하지 않으므로, Auditing 기능이 작동하지 않는다. 현재 상황은 단건 수정이지만, 여러개의 레코드를 수정 및 삭제할 때도 이와 유사하게 JPQL, QueryDSL 등을 활용하고 이를 "벌크 연산"이라고 한다. @Entity@Getter@Table(na..