sergeantsolty
Goto Top

Toplink Abfrage auf eine List?!

Allgemeine Frage.
Bis jetzt leider keine Antwort im Web gefunden...

Hallo alle zusammen,

ich habe folgendes Problem:
Mein kleines Projekt funktioniert reibungslos. Aber mit einem gewaltigen Umweg,
welcher durch eine schöne SQL-Abfrage zu bewältigen wäre.
Folgende Ausgangssituation:
Ich benutze Netbeans und Toplink mit einer MySQL-Datenbank im Hintergrund.
Alle Abfragen funktionieren gut nur hierbei komm ich nicht mehr weiter:

@Entity
public class User {
   @Id
   public int id;
   public String name;
}

@Entity
@NamedQuery(name="PC.findBerechtigtePCsForUser",query="SELECT p FROM PC WHERE :user in pc.berechtigteUser")  
public class PC{
   @Id
   public int id;
   @OneToMany
   public List<User> berechtigteUser;
}

Sooo, nun geht es um die NamedQuery...
Kurze Erklärung was mir diese Abfrage für ein Resultat bringen soll:
Ich möchte gerne alle Rechner, zu denen der übergebene User Berechtigungen hat.

Die original Fehlermeldung (zur Beispielabfrage umgeändert):
Exception Description: Syntax error parsing the query [PC.findBerechtigtePCsForUser: SELECT p FROM PC WHERE :user in p.berechtigteUser], line x, column x: syntax error at [p].
Internal Exception: line x:x: expecting LEFT_ROUND_BRACKET, found 'p'  

PS: Dies ist nur ein kleines Beispiel, meine Klassen sind etwas ausführlicher und aufwendiger. Aber für diese Fragestellung müsste es so reichen.
Einen Umweg weiß ich bereits. Mich würde wirklich der Weg über die Query interessieren, welche auch sinnvoll wäre.

Danke im voraus (=

Content-Key: 120621

Url: https://administrator.de/contentid/120621

Printed on: April 24, 2024 at 22:04 o'clock