2010-12-28 11 views
0

Ich versuche, diese Abfrage funktioniert, in meinem Modell Werkstatt habe ich einen Aufzählungstyp Feld, in dem es um Rollen verbindet.HQL-Abfrage mit Aufzählungen

Ich habe HQL irgendwie nie verwendet, nur einfache HQL-Abfragen, ich weiß, dass es wirklich mächtig ist und eine Menge Dinge vereinfacht, aber wenn ich versuche, eine Abfrage zu erstellen, die der aufgezählten Rolle entspricht, gibt es entweder eine Nachricht über " Dereferenzierung ".

Die Modelle dieser Abfrage entspricht, ist

  • AccountRoles (Enum-Klasse)
  • Workshop (kommentierten Klasse)
  • Account (kommentierten Klasse)

.

NamedQuery(name="namedOne", 
    query="from Workshop s inner join Account a where a.account_role = :role" 

Ich habe versucht, diese eine Abfrage, die wahrscheinlich falsch ist, eine andere ähnliche

NamedQuery(name="namedOne", query="from Workshop accounts.account_role = :role" 

Das Feld Konten enthält

@OneToMany(fetch=FetchType.EAGER) 
@JoinTable(name="links_ws2accounts") 
public List<models.ws.Account> accounts = new ArrayList<models.ws.Account>(); 

Jeder Vorschlag ist willkommen, wenn Sie ein bisschen brauchen weitere Informationen mich

Antwort

1

die Frage wissen lassen, ist nicht ganz klar, aber ich denke, die Abfrage sollte l ook wie folgt:

from Workshop s inner join s.accounts a where a.account_role = :role 
+0

Es funktioniert man! Danke, ich hatte ein Problem mit der Erstellung der Abfrage, ich dachte, es wäre nur "gehen Sie entlang der Pfade" ohne die innere Verbindung (erwartet, es automatisch zu tun). Prost – allenskd