Wie man letzten Datensatz aus der Mysql-Einsatz von Hibernate?
List<Lahetys> last = session.createQuery("from lahetys order by lahetysNro DESC LIMIT 1").list();
und in der log hab ich:
INFO: Hibernate: select from order by lahetysNro DESC LIMIT 1
WARN: SQL Error: 1064, SQLState: 42000
ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from order by lahetysNro DESC LIMIT 1' at line 1
Was passiert ist "von LAHETYS"? Was ist die beste Praxis zu behandeln, die mit HQL-oder/und mit SQL?
Anderes problem:
Lahetys last = (Lahetys)session.createSQLQuery("select * from lahetys order by lahetysNro DESC LIMIT 1").uniqueResult();
session.getTransaction().commit();
und ich bekomme eine exception:
Ljava.lang.Object; cannot be cast to Lahetys
So, ich kann nicht werfen ein Objekt, um meine Lahetys-Objekt, komisch?
Danke!
Sami
InformationsquelleAutor Sami | 2012-10-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre HQL-query ist ungültig. GRENZE ist nicht eine gültige HQL-Klausel. Zu tun, dass im Ruhezustand, nur
Siehe @RAS beantworten. HQL verwendet Entitäten zugeordneten Felder/Eigenschaften und Assoziationen. Nie die Tabellen-und Spaltennamen.
InformationsquelleAutor JB Nizet
Wenn Sie mit HQL, sollten Sie voll qualifizierten Klassennamen anstelle von Tabellenname. Den gleichen Weg sollten Sie propertyName anstelle von columnName. Beachten Sie auch, dass sowohl die groß - und Kleinschreibung.
Blick auf Ihre Anfragen & die Ausnahme, die Sie bekommen, ich gehe davon aus, dass lahetys ist deine Tabelle den Namen & lahetysNro ist die Spalte name.
Sollten Sie verwenden, zum Beispiel: Wenn Ihre Lahetys - Klasse liegt bei
com
Ordner:Zur deiner 2. Frage:
Hier haben Sie verwendet SQL anstelle von HQL.
Wenn Sie mithilfe von SQL mit hibernate in einer Weise, es gibt immer
List<Object[]>
& nichtList<Lahetys[]>
.Diese Antwort ist nicht korrekt. Siehe @demon101 Kommentar.
Ich bin nicht die Fokussierung auf
limit
Dinge, die Sie über hier. Das ist etwas, OP eingesetzt und ich bin nicht darüber zu reden. Ich erkläre die Ausnahmen OP erhalten hat und wie er diese zu beheben. Die Verwendung vonlimit
ist völlig anders, als auch als aus-dem-Kontext-hier.Diese Lösung doenst Arbeit, bitte abwählen dies als die bevorzugte Antwort.
InformationsquelleAutor RAS