MAX Funktion geht aber nicht so richtig :/

GartenUmgraben

Erfahrenes Mitglied
Moin... ich will per EJB aus einer Tabelle die zur Zeit maximale ID bekommen.

Normales SQL wäre Select max(id) from tab1;
also in EJB-QL Select max(e.id) from tab1 e

Nur ist dann der Returnwert ja kein Object sondern ein Integer und wenn ich die Funktion genauso deklariere sagt mir der JBoss dass der Returnwert eines EntityBean Queries entweder vom Typ der Bean oder eine Collection (in der dann mehrer Objecte sind) sein muss, nicht jedoch Integer

Kann ich ihm das Irgendwie beibringen?



Wenn ich es umstelle auf eine "Objectigere" Query alà

Select Object(e) from tab1 e where e.id = select max(f.id) from tab1 f


Dann meckert er schon, das das querry ungültig sei (habs auch schon mit klammern beim subquerry versucht)

Ich meine ich könnte auch wieder per FindAll rangehen..mir alle Ids in ein Feld packen und dann anschließend die größte dort herraus extrahieren (war meine erste Lösung) nur ist das ja keine besonders schöne Lösung :(
 
Hallo!

Du kannst die Agregat Funktion max(...) Beispielsweise in einer ejbSelect Methode verwenden. Dort kannst du auch einen Integer / Double/ Whatever zurückgeben.
EJB QL (auch in Version 2.1) ist recht beschränkt.

Gruß Tom
 
Thomas Darimont hat gesagt.:
Hallo!

Du kannst die Agregat Funktion max(...) Beispielsweise in einer ejbSelect Methode verwenden. Dort kannst du auch einen Integer / Double/ Whatever zurückgeben.
EJB QL (auch in Version 2.1) ist recht beschränkt.

Gruß Tom

Hi,

habe zwar nicht das Poblem aber interessieren tut es mich schon. Wie meinst du das mit der ejbSelect Methode? Eine reine EJB QL Anweisung dort angeben ?

Gruß
 

Neue Beiträge

Zurück