728x90
반응형
[JPA] Named parameter not bound: ~
작성한 쿼리를 테스트 하기위해
테스트 코드 작성한 것을 실행해보았다.
//쿼리
public interface FaultJpaRepository extends JpaRepository<Fault, Long> {
@Query(value = "select f from Fault f" +
" where f.resolveTime is null" +
" and (f.type =: type1 or f.type =: type2)" +
" order by f.writeTime desc")
List<Fault> findBmsWarning(@Param("type1") int type1, @Param("type2") int type2);
}
@Test
void findBmsWarningQueryTest() {
faultJpaRepository.findBmsWarning(1, 2);
}
그런데 다음과 같은 에러를 만나게 되었다.! ^^
Named parameter not bound : type2; nested exception is org.hibernate.QueryException: Named parameter not bound : type2
org.springframework.dao.InvalidDataAccessResourceUsageException: Named parameter not bound : type2; nested exception is org.hibernate.QueryException: Named parameter not bound : type2
@Param 문제?
parameter 부분에 문제가 생겼다고 해서 @Param에 문제가 있는 줄 알고 다음과 같이 변경했다.
//쿼리
public interface FaultJpaRepository extends JpaRepository<Fault, Long> {
@Query(value = "select f from Fault f" +
" where f.resolveTime is null" +
" and (f.type =: type1 or f.type =: type2)" +
" order by f.writeTime desc")
List<Fault> findBmsWarning(@Param(value = "type1") int type1, @Param(vlaue = "type2") int type2);
}
하지만 결과는 같았다.^^
한참을 헤맨 결과.. 🥵
문제점을 찾게 되었다.
원인: JPQL 문법!
자세히 보면 f.type =: type1
부분에서 :과 type1 띄어쓴 것을 확인 할 수 있다.. ㅠㅠ
아래와 같이 수정
public interface FaultJpaRepository extends JpaRepository<Fault, Long> {
@Query(value = "select f from Fault f" +
" where f.resolveTime is null" +
" and (f.type =:type1 or f.type =:type2)" +
" order by f.writeTime desc")
List<Fault> findBmsWarning(@Param("type1") int type1, @Param("type2") int type2);
}
후... 이것때문에 30분
이나 날렸다.. ㅠㅠ
728x90
반응형
'0+ 스프링 > 0 + SpringBoot(스프링부트)' 카테고리의 다른 글
[스프링] 동시성 문제 해결(ThreadLocal) (0) | 2023.01.17 |
---|---|
[스프링] HTTP Only와 Secure Cookie (0) | 2023.01.15 |
[JPA 에러 해결] Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "\000d\000a ~ " 오류 해결 (0) | 2022.07.27 |
JPA 복합키 사용방법(@IdClass, @EmbeddedId) (0) | 2022.06.02 |
Websocket Server headers 추가 방법(javax.websocket, spring boot) (0) | 2022.05.18 |