2017-11-09 12 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. Inconsistant問題が同じエンティティ上の別の方法で観察されたクエリ

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

    の以下の形式を使用してください

@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 setまたはnullを受け入れることができますが、原因をキャッチするためにリポジトリを呼び出す前にbankIdsListを記録しましょう。 –

+0

@AndriySlobodyanykさて、 '(:bankIds) 'に何が割り当てられるのだろうかと思っています。 JPQL/HQLに精通しているのではなく、CriteriaQueryを使用しています。 – pirho

答えて

0

参照してくださいLink

+0

これは実際には答えではありませんが、間違ったフォーマットがその動作をどのように作成するか説明すると、1つになる可能性があります。 –