Hallo alle,
Ich benutze JPA 2.0 mit der statndard implementierung dafür. Ich habe in UI eine Tabelle mit Paginierung, die sortiert werden kann. Nun wollte ich mit NamedQueries die" ORDER BY :fieldname :sortorder" probieren, habe aber erfahren dass es nicht geht.
dh. ich übergebe der DAO Methode (int first, int maxRes, String sortColName, ASC / DESC) und will die PERSONEN haben.
Das Problem ist dass es eine Spalte ROLLE gibt eine Person kann WORKER id 1, MANAGER id 2 usw haben (Tabelle Role (id,rolename ) ) - wenn ich nach role sortieren will kracht es. DA brauche ich ein Join. Ich will es aber Typischer und als Letztes will ich ne Query konkatenieren. Ich habe mit CriteriaQueries probiert aber komme mit den Joins nicht klar.
Ich bräuchte also solche Query:
SELECT p FROM Person p LEFT JOIN Role r WHERE 1
ORDER BY r.name LIMIT firts, maxRes
r.name gibt es nur in role, person hat solhces feld nicht aber es kann auch nach p.lastname oder p. firstname sortiert werden.
Als nächstes kommt noch weitere Einschränkung und zwar ein Where welches sich nur auf die Person bezieht, sich Where p.firstname Like %suchwort%
Konnte mir jemand sagen wie man dafür eine CriteriaQuery baut bzw etwas was auch typsicher ist und performancetechnisch ok ist.
Danke im Voraus
Ich benutze JPA 2.0 mit der statndard implementierung dafür. Ich habe in UI eine Tabelle mit Paginierung, die sortiert werden kann. Nun wollte ich mit NamedQueries die" ORDER BY :fieldname :sortorder" probieren, habe aber erfahren dass es nicht geht.
dh. ich übergebe der DAO Methode (int first, int maxRes, String sortColName, ASC / DESC) und will die PERSONEN haben.
Das Problem ist dass es eine Spalte ROLLE gibt eine Person kann WORKER id 1, MANAGER id 2 usw haben (Tabelle Role (id,rolename ) ) - wenn ich nach role sortieren will kracht es. DA brauche ich ein Join. Ich will es aber Typischer und als Letztes will ich ne Query konkatenieren. Ich habe mit CriteriaQueries probiert aber komme mit den Joins nicht klar.
Ich bräuchte also solche Query:
SELECT p FROM Person p LEFT JOIN Role r WHERE 1
ORDER BY r.name LIMIT firts, maxRes
r.name gibt es nur in role, person hat solhces feld nicht aber es kann auch nach p.lastname oder p. firstname sortiert werden.
Als nächstes kommt noch weitere Einschränkung und zwar ein Where welches sich nur auf die Person bezieht, sich Where p.firstname Like %suchwort%
Konnte mir jemand sagen wie man dafür eine CriteriaQuery baut bzw etwas was auch typsicher ist und performancetechnisch ok ist.
Danke im Voraus