본문 바로가기

Programming/Java & JSP & Spring

[Spring Boot] JPA UPDATE

JPA 에서는 UPDATE를 따로 지원해주지 않으므로 직접 쿼리 작성을 해야한다.


주의할 점은 쿼리문 위에 @Modifying 애노테이션을 붙여줘야한다는 점이다.

@Modifying
@Query("UPDATE user SET inquiry = inquiry + 1 WHERE userId = :userId")
void updateInquiry(@Param("userId") Long userId);


하지만 위와 같이 작성했음에도 불구하고 오류가 나는 경우가 있다.


또 한가지 주의할 점은 대소문자에 주의해야한다.

쿼리에서 테이블 명을 쓸 때는 해당 테이블과 매핑된 도메인의 클래스 명을 사용해야 한다.


예를 들어, user테이블과 매핑된 클래스(@Table(name="user")와 매핑된 클래스)가 User.java 이면,

클래스 명은 User이다.


즉, Update 쿼리를 작성 시에 위와 같이 user를 쓰면 에러가 발생되고 User로 작성해야 된다는 말이다.