2017-12-08 2 views
1

Wir verwenden Hibernate in einem unserer Projekte und verwenden dort native Abfragen. In einer der systemeigenen Abfragen sieht der SQL-Code wie folgt aus: AND LNG_ISO = :searchLang. Dann habe ich den Parameter wie:Fehler beim Festlegen des Zeichenfolgenparameters für die systemeigene Abfrage im Ruhezustand

query.setParameter("searchLang", "deu"); 

Aber das Ergebnis zeigt, dass dieser Parameter nicht berücksichtigt wurde. Die Abfrage ist korrekt, da das Ersetzen des AND LNG_ISO = :searchLang durch AND LNG_ISO = 'deu' das erwartete Ergebnis liefert.

Was ist falsch an meinem String-Parameter? Vielleicht muss ich den Wert in einfache Anführungszeichen schreiben, aber ich habe keinen Weg gefunden, wie es geht.

+1

Fügen Sie den vollständigen Code hinzu, der die Abfrage erstellt und aufruft –

+0

Verwenden Sie JPA API oder etwas anderes? – DN1

+0

Ja, mit JPA API –

Antwort

0

Im Allgemeinen die Verwendung der generischen Vanille query.setParameter wird nicht empfohlen, weil es viel langsamer und fehleranfällig als seine spezialisierten Äquivalente ist. Versuchen Sie eine der folgenden Optionen:

Wenn Sie Hibernate 5.2 oder höher verwenden, sind nur die letzteren Optionen zulässig.

+0

Nun, ich benutze die JPA-API tatsächlich und es gibt keine setString-Methode oder setParameter mit solchen 3 Argumente in der javax.persistence.Query –

+0

Ich sehe, haben Sie versucht, die \t setParameter (Parameter param, T-Wert) Version? –

+0

Nein. Ehrlich gesagt, ich weiß nicht, wie das geht? –

Verwandte Themen