2012-04-08 2 views
0

Ich benutze ejb 2.1 BMP, JBoss 7.1 AS
Ich brauche Liste nach einem bestimmten Feld bestellt (es hängt von der Wahl des Benutzers)
aus der Datenbank mit ORDER BY in SQL-Anweisung.
-Home-Schnittstelle:EJB 2.1 Entity, wie man Liste nicht Sammlung erhält?

public interface AliveHome { 
    ... 
    Collection<Alive> findAllConstraint(...) [exceptions]; 
    ... 
} 

Wenn ich Rückgabetyp ändern i Ausnahme erhalten zur Liste:

java.lang.ClassCastException: java.util.HashSet nicht java.util.List gegossen werden kann $ Proxy13 .findAllConstraint (Unknown Source)

Aber ich brauche List (weil mit HashSet es keinen Sinn, in ORDER BY)
Wie Liste bekommen?

Antwort

0

Es gibt keine Lösung für JBoss 7. Ich installiere einfach JBoss 6
und es funktioniert mit Rückgabetyp Liste! =)

1

Ein Hashset ist ungeordnet, so dass Sie keine sortierte Liste automatisch erhalten können. Sie müssen über das Hashset iterieren, die Elemente zu einer Liste hinzufügen und dann diese Liste nach Bedarf sortieren.

+0

oder erstellen Sie Ihre eigene ArrayList und rufen Sie 'arrayList.addAll (Sammlung)' – krock

0

Haben Sie versucht, eine LinkedHashSet zu verwenden? Ich denke, das funktioniert zumindest in EJB3.

+0

Ich muss Version 2.1 verwenden. Und wie kann ich HashSet auf LinkedHashSet anwenden? – user1320115