Search

@Param

νƒœκ·Έ
Springboot

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
볡사