IllegalStateException κ³Ό @Param
μλμ κ°μ΄ 쿼리λ₯Ό μμ±νλλ
@Query("SELECT e.category, SUM(e.expenditureAmount) FROM Expenditure e WHERE e.user.id = :userId AND e.expenditureAt BETWEEN :startDate AND :endDate GROUP BY e.category")
List<Object[]> findUserExpendituresByDateAndCategory(Long userId, LocalDate startDate, LocalDate endDate);
Java
볡μ¬
IllegalStateException μ΄ μ λ₯Ό λ°κ²¨μ€¬μ΅λλ€. μ κ·Έλ°κ±ΈκΉμ? π«
java.lang.IllegalStateException: For queries with named parameters you need to provide names for method parameters;
Use @Param for query method parameters, or when on Java 8+ use the javac flag -parameters
at org.springframework.data.jpa.repository.query.QueryParameterSetterFactory$BasicQueryParameterSetterFactory.lambda$getName$2(QueryParameterSetterFactory.java:251) ~[spring-data-jpa-3.0.4.jar:3.0.4]
Plain Text
볡μ¬
@Query λ΄μ JPQL 쿼리μμ :userId, :startDate, :endDate λΌλ λͺ
λͺ
λ νλΌλ―Έν°λ₯Ό μ¬μ©νμΌλ©΄μ λ©μλμμλ μ΄λ₯Ό λͺ
μμ μΌλ‘ μ§μ ν΄μ£Όμ§ μμκΈ° λλ¬Έμ
λλ€. λ°λΌμ μλμ κ°μ΄ μμ ν΄μ£Όλ©΄ μ λλ‘ λμνκ² λ©λλ€.
@Query("SELECT e.category, SUM(e.expenditureAmount) FROM Expenditure e WHERE e.user.id = :userId AND e.expenditureAt BETWEEN :startDate AND :endDate GROUP BY e.category")
List<Object[]> findUserExpendituresByDateAndCategory(@Param("userId") Long userId, @Param("startDate") LocalDate startDate, @Param("endDate") LocalDate endDate);
Java
볡μ¬