Hibernate löst HibernateQueryException aus: Eigenschaft konnte nicht aufgelöst werden

8

Also habe ich eine Tabelle, die ich im Hibernate als eine Entität definiert habe:

%Vor%

Als ich versuchte, eine einfache Abfrage für diese Tabelle zu schreiben:

%Vor%

Ich habe den folgenden Fehler erhalten:

%Vor%

Warum kann ich nicht herausfinden, was dbgroupid in meiner Klasse ist?

    
Grant Cermak 14.12.2010, 16:57
quelle

3 Antworten

14

Es liegt wahrscheinlich daran, dass Ihr Getter (und Setter) nicht der Javabeans-Konvention folgt. Es sollte sein:

%Vor%

Was ich vorschlagen möchte, ist: - Benennen Sie Ihre Felder und verwenden Sie dann Ihre IDE, um Setter und Getter zu generieren. Es wird der Konvention folgen. (Eine andere Sache, das ist eine Frage der Präferenz, aber meiner Meinung nach macht eine Klasse einfacher zu lesen - kommentieren Sie Ihre Felder, nicht getters)

    
Bozho 14.12.2010, 17:03
quelle
5

Nun, ich habe ein paar Fortschritte gemacht, aber ich verstehe immer noch nicht, wo Hibernate seine Namen bekommt. Ich debuggte in den Mut des Winterschlafs und fand die folgende Klasse:

%Vor%

In dieser Klasse gibt es eine Methode:

%Vor%

Der versucht, den in den Kriterien für das Objekt angegebenen Namen aufzulösen. In der typesByPropertyPath-Map habe ich folgende Werte gefunden:

%Vor%

Hier können Sie sehen, dass die KAPITALISIERUNG von DBGroupId nicht mit dem übereinstimmt, was ich in meinen Kriterien hatte. Also änderte ich das von dbgroupid zu DBGroupId wie folgt:

%Vor%

Jetzt funktioniert es.

    
Grant Cermak 14.12.2010 17:02
quelle
2

Vielleicht, weil Sie es als "DBGroupId" und nicht als "dbgroupid" gekennzeichnet haben?

    
Pimgd 14.12.2010 17:00
quelle

Tags und Links