2017-11-09 1 views
0

내가 좋아하는 쿼리가 있습니다. 때때로 다음과 같은 예외가 발생합니다.일치는 IllegalArgumentException

Description - Parameter with that name [bankIds] did not exist; nested exception is java.lang.IllegalArgumentException: Parameter with that name [bankIds] did not exist, StackTrace - java.lang.IllegalArgumentException: Parameter with that name [bankIds] did not exist 
    at org.hibernate.jpa.spi.BaseQueryImpl.findParameterRegistration(BaseQueryImpl.java:505) 
    at org.hibernate.jpa.spi.BaseQueryImpl.setParameter(BaseQueryImpl.java:631) 
    at org.hibernate.jpa.spi.AbstractQueryImpl.setParameter(AbstractQueryImpl.java:180) 
    at org.hibernate.jpa.spi.AbstractQueryImpl.setParameter(AbstractQueryImpl.java:49) 

관찰

  1. 나는이 관찰에 추가 해요 방법을 잘 모르겠어요,하지만 난 무거운 데이터를 작은 있습니다 모듈 내부에서 사용될 때 서비스는 실패 할 것 같아요 측면 (심지어 여기에서는 때때로 실패합니다). 메모리 문제로 인해 이런 종류의 예외가 발생합니까?

  2. 일관성이 문제가 같은 개체에 다른 방법에 관찰되었다 :

@Query("select I from Indicator I where I.activityId in (:activityIds) ") 
 
    \t public List<Indicator> getIndicatorDetailsByActivityIdList(@Param("activityIds") Set<Long> acyIdList);

+0

'bankIdList'가 비어 있거나'null '이면 어떤 오류가 발생합니까? – pirho

+0

JPA는 인수로 emtpy 세트 또는 null을 허용하지만 저장소를 호출하여 원인을 파악하기 전에 bankIdsList를 기록합시다. –

+0

@AndriySlobodyanyk 그래,'(: bankIds) '에 무엇이 할당 될지 궁금해서 전체적으로 쿼리가 어떻게 생겼는지 궁금 할 것입니다. JPQL/HQL에 익숙하지 않고 CriteriaQuery를 사용합니다. – pirho

답변

0

@Query("select I from Indicator I where I.bankId in :bankIds ") 

를 참조하십시오 쿼리의 아래 형식을 사용하십시오 Link

+0

잘못된 형식이 어떻게 동작을 생성하는지 설명하면 실제로는 답변이 아닙니다. –