Wie geben Sie die OrderBy-Klausel für zwei Spalten an?

7

Wir möchten 2 Spalten in der Seam EntityQuery-Schnittstelle sowie das JPA-Modell bestellen. Wie machen wir das?

%Vor%     
Sam 18.10.2010, 12:13
quelle

2 Antworten

11

Wenn Sie von javax.persistence.OrderBy sprechen, übernimmt diese Annotation eine Liste kommagetrennter Eigenschaften (der Zieleinheit) und ordnet die Sammlung entsprechend an. Zum Beispiel in Ihrem Fall startTimeHrs asc, startTimeMins asc .

Aus der JPA 1.0 Spezifikation:

  

9.1.28 OrderBy Annotation

     

Die OrderBy Annotation gibt den Wert an   Bestellung der Elemente von a   Sammlung geschätzt Verband an der   Punkt, wenn die Assoziation ist   abgerufen.

%Vor%      

Die Syntax der Wertordnung   element ist eine orderby_list, wie   folgt:

%Vor%      

Wenn ASC oder DESC nicht angegeben ist,    ASC (aufsteigende Reihenfolge) wird angenommen.

     

Wenn das bestellende Element dies nicht ist   angegeben, Reihenfolge nach dem Primärschlüssel   der assoziierten Entität wird angenommen.

     

Der Name der Eigenschaft oder des Feldes muss   entsprechen denen eines Persistenten   Eigenschaft oder Feld des zugehörigen   Klasse. Die verwendeten Eigenschaften oder Felder   in der Bestellung muss entsprechen   Spalten für welche Vergleichsoperatoren   werden unterstützt.

    
Pascal Thivent 18.10.2010, 12:31
quelle
13

Ja, Sie können @OrderBy verwenden, um Ihre Abfragen zu sortieren.

%Vor%

Jetzt, wenn du A.getBobjects() sagst, werden sie geordnet. Wenn Sie jedoch die EntityQuery-Methode zum Abrufen des Ergebnisses verwenden, können Sie die getEjbql() überschreiben und die Reihenfolge dort angeben.

%Vor%

Oder Sie können @Override the getResultList() verwenden, um die Sammlung dort in Ihren EntityLists

zu bearbeiten     
Shervin Asgari 18.10.2010 12:30
quelle

Tags und Links