식구하자 프로젝트중 jpql을 사용하는 과정에서 발생한 오류에 대해 포스팅하려 한다.
참고로 필자는 java 11버전 사용중이다
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.
에러 내용은 이러하다
@Modifying
@Query("update TradeBoard t set t.view = t.view + 1 where t.id = :id")
int updateView(Long id);
조회수 증가 쿼리를 jpql로 작성하면서 해당 오류가 발생하였다.
에러의 내용을 찾아보니 java 8버전 이상에서는 jpql 사용시에 파라미터에 스프링 데이터가 제공하는 @Param을 명시해야 된다는 내용이였다.
따라서 Long id 파라미터에 @Param을 명시하면서 에러를 해결하였다.
수정 버전
@Modifying
@Query("update TradeBoard t set t.view = t.view + 1 where t.id = :id")
int updateView(@Param("id") Long id);