DISTINCT in EJBQL ?

GartenUmgraben

Erfahrenes Mitglied
Moin ich hab ne Tabelle (Person)

ID(PK) Name
1 Hans
2 Hans
3 Knut


Und in meinem EJB Projekt ne Funktion die mir alle Zeilen ausgibt zu einem bestimmten Namen..also bei "Hans" dann zwei Zeilen

in der ejb-jar.xml also

<ejb-ql><![CDATA[SELECT OBJECT(p) FROM Person AS p WHERE p.name=?1]]></ejb-ql>

das geht auch soweit.

Nur jetz möchte ich das mir die funktion auch bei Namen die mehrfach vorkommen nur eine Zeile anzeigt... also auch bei Hans nur eine Zeile ausgibt. Deshalb habe ich es mit "DISTINCT" versucht was aber nicht so recht geht.

<ejb-ql><![CDATA[SELECT DISTINCT OBJECT(p) FROM Person AS p WHERE p.name=?1]]></ejb-ql>


Jmd ne Idee ?
 
Moin,

GartenUmgraben hat gesagt.:
Nur jetz möchte ich das mir die funktion auch bei Namen die mehrfach vorkommen nur eine Zeile anzeigt... also auch bei Hans nur eine Zeile ausgibt. Deshalb habe ich es mit "DISTINCT" versucht was aber nicht so recht geht.

<ejb-ql><![CDATA[SELECT DISTINCT OBJECT(p) FROM Person AS p WHERE p.name=?1]]></ejb-ql>

Natürlich geht das nicht. Distinct gibt bei mehrfach vorkommenden Werten nur einen zurück. In deinem Fall gibt es allerdings keine doppelten Werte, da die Objekte die du bei deinem Select zurück gibst, unterscheidbar sind (1, Hans != 2, Hans).

GartenUmgraben hat gesagt.:
Wenn du nicht auf das gesamte Bean angewiesen bist, sondern nur die Namen brauchst, wäre eine Selector-Methode mit vorgeschalteter Home-Methode eine Möglichkeit. Da könntest du auch das Distinct auf den Namen verwenden.

Grüße
THMD
 

Neue Beiträge

Zurück