Ich schreibe eine Named Query, um Daten basierend auf jährlichen Basen abzurufen.So senden Sie Spaltenname als Parameter in Named Query
Abfrage
SELECT * FROM table1
WHERE ((year1 > 0) OR (year2> 0 OR (beyondYear2> 0)));
Die Abfrage funktioniert gut. Von JSP
werde ich das Jahr auswählen, also sollte das Album für dieses spezielle Jahr geladen werden. Die obige Abfrage lädt Daten für den gesamten Jahrbereich. Gibt es eine Möglichkeit, dass ich Column Name
als Parameter übergeben kann, um zu vermeiden, die Abfrage für jedes Jahr zu schreiben?
SELECT * FROM table1
WHERE (:yearRange > 0);
: yearRange: als Parameter.
Wie kann ich von Java, dass geschickt? Soll ich setString() oder setParameter() verwenden? und ich habe diesen Teil nicht verstanden ': yearRange = 'year1'' – Sam
setParameter, es ist ein normaler Abfrageparameter – Turo
Nein. Es funktioniert nicht. Ich bekomme einen Fehler mit den Worten: 'SEVERE: Ungültige Spalte Name org.hibernate.exception.GenericJDBCException: konnte query nicht ausführen ' – Sam