[Snow-ball]server/스프링(Spring)
[Spring Boot] org.springframework.dao.InvalidDataAccessApiUsageException: For queries with named parameters you need to use provide names for method parameters. 에러
Snow-ball
2024. 10. 15. 14:03
반응형
org.springframework.dao.InvalidDataAccessApiUsageException: 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.; nested exception is 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.
위의 에러는 Spring Data JPA @Query 를 사용할 때 name parameters (이름이 지정된 파라미터)를 올바르게 처리하지 않아서 생기는 문제이다.
Jpa 쿼리에서 :parameterName 형태로 파라미터를 지정하면, 메서드의 파라미터에도 @Param("parameterName")을 명시적으로추가해주면 해결된다.
수정 전:
1
2
|
@Query("SELECT f.idx FROM Firebase f WHERE f.userId = :userId ORDER BY f.idx DESC")
Optional<Long> findFirstByUserIdOrderByIdxDesc(String userId);
|
cs |
수정 후:
1
2
|
@Query("SELECT f.idx FROM Firebase f WHERE f.userId = :userId ORDER BY f.idx DESC")
Optional<Long> findFirstByUserIdOrderByIdxDesc(@Param("userId") String userId);
|
cs |
반응형