ERROR: operator existiert nicht: character varying = numerische
So, dass ich immer den Titel-Fehler. Die Zeichenfolge, die ich benutze, um die Abfrage zu erstellen ist,
select p from Product p where p.productType.productTypeId in (:productTypeIds)
Und hier ist ein clip von der java -
List<Long>partTerminologyIds = getProducTypeds(partTerminologys);
..........................................................................
query.setParameter("partTerminologyIds", productTypeIds);
Ich habe keine Ahnung, warum ich diese Fehlermeldung bekommen, ane-ja partTerminolgyId in meiner Datenbank ist ein numerischer 18.
Irgendwelche Ideen???
- Sie haben die Argumente in
query.setParameter()
Umgekehrt. Solltequery.setParameter("productTypeIds", partTerminologyIds)
. (Sie brauchen auch einen Platz nachList<Long>
🙂 )
Du musst angemeldet sein, um einen Kommentar abzugeben.
Also am Ende ist es endete als, dass ein "foreign key" ein string in einer Tabelle und einem numerischen in die andere. Ich baute die Datenbank mit neuen Skripts und nicht reverse engineer die neue Datenbank.
Diese Abfrage ist ungültig:
Meinst du:
Oder eher:
Und wenn ja, was ist der Datentyp von
productTypeId
in Ihrer Abfrage. Bitte klären Sie.Dieser sieht aus wie ein Hibernate-Abfrage. Sie tun müssen
query.setParameterList
geben Sie eine Auflistung Wert, sonst Hibernate nicht wissen erweitern aus:productTypeIds
um eine Liste der Platzhalter anstatt einfach unverbindlich die Liste als serialisierbar blob (was ich denke, ist eine schreckliche Standard).