JPQL 에러 (For queries with named parameters you need to use provide names for method parameters)

미누·2023년 9월 17일

식구하자

목록 보기
2/5

식구하자 프로젝트중 jpql을 사용하는 과정에서 발생한 오류에 대해 포스팅하려 한다.
참고로 필자는 java 11버전 사용중이다

👿 Problem


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로 작성하면서 해당 오류가 발생하였다.

👼 Solution


에러의 내용을 찾아보니 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);

0개의 댓글