[학습 포인트] 💡 JPA에서 update 시 @Modifying 애노테이션이 필요한 이유
·
프로젝트 트러블 슈팅 및 몰랐던점 정리/CommunityAPI
JPA의 기본 동작부터 알아보자!JPA에서 사용하는 @Query 애노테이션은 기본적으로 데이터를 **조회(SELECT)**할 때 사용된다. 그래서 UPDATE나 DELETE처럼 데이터를 변경할 때는 JPA에게 추가적으로 알려줘야 한다. 이때 JPA가 헷갈리지 않도록 명확히 알려주는 방법이 바로 @Modifying 애노테이션이다! 🚨 @Modifying이 꼭 필요한 이유 3가지① 변경 쿼리임을 명확히 알려주기 • JPA는 기본적으로 모든 @Query를 SELECT 쿼리라고 생각한다.• 그런데 UPDATE나 DELETE 쿼리는 데이터베이스에서 실제로 데이터를 변경하는 쿼리라서, JPA의 1차 캐시(영속성 컨텍스트)와 충돌이 생기며 이로인한 동기화 과정에서 동기화가 제대로 되지 않아 데이터의 정합성이 깨지는..