Ich habe eine Abfrage wie:inkonsistent Illegal
@Query("select I from Indicator I where I.bankId in (:bankIds) ")
public List<Indicator> getIndicatorDetailsByBankIdList(@Param("bankIds") Set<Long> bankIdList);
Diese feine die meiste Zeit arbeitet. Manchmal gibt es die folgende Ausnahme.
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)
Beobachtungen
Ich bin nicht sicher, wie recht ich in dieser Beobachtung Zugabe bin, aber ich denke, der Dienst nur, wenn schwere Innenmodule, die wenig sind auf den Daten verwendet versagt Seite (auch hier scheitert es nur zeitweise). Führen Speicherprobleme dazu, dass diese Art von Ausnahmen ausgelöst wird?
Inconsistant Problem auf eine andere Methode auf der gleichen Einheit beobachtet wurde:
@Query("select I from Indicator I where I.activityId in (:activityIds) ")
\t public List<Indicator> getIndicatorDetailsByActivityIdList(@Param("activityIds") Set<Long> acyIdList);
Welchen Fehler haben Sie, wenn 'bankIdList' leer oder' null' ist? – pirho
JPA ermöglicht es, empty set oder sogar null als Argument zu akzeptieren. Lassen Sie uns jedoch die bankIdsList protokollieren, bevor Sie das Repository aufrufen, um die Ursache zu finden. –
@AndriySlobodyanyk Ok, ich frage mich nur, was "(: bankIds)" zugewiesen wird, also wie sieht die Abfrage dann insgesamt aus? Nicht so vertraut mit JPQL/HQL selbst, aber mit CriteriaQuery. – pirho