[Error] Use @Param for query method parameters, or when on Java 8+ use the javac flag -parameters.
후,,,,spring data JPA를 사용해서 interface 파라미터를 사용한 @Query문 작성 도중 도저히 알 수 없는 에러를 만났습니다.
바로!!!제목과 같은 에러인데요. 먼저 Repository를 보시면
public interface OperationRepository extends JpaRepository<Operation, Long> {
@Query("SELECT o FROM Operation o WHERE o.link=:link")
public Optional<Operation> findByLink(String link);
@Query("SELECT o FROM Operation o WHERE o.id=:id AND o.link=:link")
public Optional<Operation> findByIdAAndLink(Long id,String link);
}
위와 같이 인터페이스 파라미터에 어떠한 어노테이션도 붙지 않았습니다.
바로 여기서 에러가 발생한 원인이었는데요, @Param
어노테이션을 붙여주지 않았기 때문입니다.
처음에는 이에 대해 에러가 발생하지 않다가 나중에 갑자기 발생했는데 아마 gradle
파일에서 설정을 해주다가 -parameters
옵션을 포함한 부분이 들어있다가 수정하면서 빠진게 아니었나 싶습니다.
public interface OperationRepository extends JpaRepository<Operation, Long> {
@Query("SELECT o FROM Operation o WHERE o.link=:link")
public Optional<Operation> findByLink(@Param("link") String link);
@Query("SELECT o FROM Operation o WHERE o.id=:id AND o.link=:link")
public Optional<Operation> findByIdAAndLink(@Param("id") Long id,@Param("link") String link);
}
자바 8버전 이상이라고 하더라도 @Query
어노테이션을 사용하여 쿼리문을 작성해 줄때 파라미터 바인딩을 위해 @Param
어노테이션을 사용해주도록 합시다!!!!
더 자세한 내용은 https://www.inflearn.com/questions/367372 를 참고해주시면 되겠습니다.
Author And Source
이 문제에 관하여([Error] Use @Param for query method parameters, or when on Java 8+ use the javac flag -parameters.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@bm_rabbit96/Error-Use-Param-for-query-method-parameters-or-when-on-Java-8-use-the-javac-flag-parameters저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)