No data type for node: org.hibernate.hql.ast.tree.IdentNode

Veröffentlicht auf von Christopher Olbertz

In meiner Anwendung gibt es die Tabellen Mieter (Lodger), Zimmer (Room) und Miete (Rent), welche die beiden vorherigen Tabellen miteinander verknüpft. Dabei stehen Lodger und Room jeweils in einer n:1-Beziehung zu Rent, d.h. in Rent gibt es ein Property Room room und Lodger lodger.

Folgende HQL-Anweisung wollte ich durchführen:

"select max(moveInDate), lodger, room from Rent r group by r.lodger"

Das Ergebnis wollte ich anschließend in einer For-Schleife ausgeben:

for (int i = 0; i < list.size(); i++) {
    Object[] row = (Object[]) list.get(i);
    Lodger loger = (Lodger)row[1];
    System.out.println("Mieternr: " + loger.getFirstName());
    Room room = (Room)row[2];               
    System.out.println("Zimmernr.: " + room.getRoomId());
}


Es gab keinerlei Probleme, wenn ich room aus der HQl-Anweisung entfernte. Ließ ich room jedoch drin, erhielt ich folgende Fehlermeldung:

No data type for node: org.hibernate.hql.ast.tree.IdentNode
 \-[IDENT] IdentNode: 'room' {originalText=room}


Gelöst habe ich das Problem folgendermaßen:

"select max(moveInDate), lodger, r.room from Rent r group by r.lodger"

Ich bin mir nicht sicher, warum das funktioniert, aber das Problem ist auf jeden Fall behoben, die Abfrage läuft.

Ich hoffe, dass ich hiermit bei ähnlichen Problemen helfen konnte.
Werbung

Veröffentlicht in Hibernate

Um über die neuesten Artikel informiert zu werden, abonnieren:
Kommentiere diesen Post