조회수 컬럼 update 를 구현하던중 에러가 발생했습니다.
작성한 JPQL 구문은 아래와 같습니다.
@Modifying
@Query("UPDATE domain d SET d.viewCount = d.viewCount+1 WHERE d.id = :id")
int addViewCount(String id);
[에러메세지]
java.lang.IllegalStateException: For queries with named parameters you need to use provide names for method parameters.
Use @Param for query method parameters, or when on Java 8+ use the javac flag -parameters.
번역기를 돌려 번역하면 에러메세지 내용은 다음과 같습니다.
명명된 매개 변수가 있는 쿼리의 경우 메서드 매개 변수에 이름을 제공해야 합니다.
쿼리 메서드 매개변수에 @Param을 사용하거나 Java 8+에서 javac 플래그 -parameters를 사용하는 경우 사용합니다.
[해결]
작성한 JPQL구문의 파라미터 부분에 Spring에서 제공하는 @Param을 붙여줍니다.
@Modifying
@Query("UPDATE domain d SET d.viewCount = d.viewCount+1 WHERE d.id = :id")
int addViewCount(@Param("id") String id); // 파라미터에 @Param("id") 구문 추가
'버그일기' 카테고리의 다른 글
[Spring Boot] template might not exist or might not be accessible by any of the configured Template Resolvers (0) | 2023.01.22 |
---|---|
[spring boot] 비동기 처리와 response 500 에러 (0) | 2023.01.13 |
[tiles] org.xml.sax.SAXParseException 에러 (0) | 2022.04.26 |
[SVN] Attempted to lock an already-locked dir 에러 (0) | 2020.02.20 |