2017-11-25 4 views
0

ich eine Entität mit einer zugeordneten Liste habeDas Entity ruft die abgebildeten Listenelemente in einer zufälligen Reihenfolge

public class MovieEntity { 
... 
      @OneToMany(mappedBy = "movie", cascade = CascadeType.ALL) 
      private Set<MovieOtherTitle> otherTitles; 
... 
    } 

Die Liste 4 Objekte enthält (in der Datenbank)

ID  COUNTRY  TITLE 
1952  USA   string2 
1953  USA   string1 
1954  USA   string3 
1955  USA   string4 

Wenn Sie eine Liste anzeigen es stellt sich heraus, dass die Gegenstände in einer anderen Reihenfolge

System.out.println("Titles: " + movie.getOtherTitles()); 

Titles: [MovieOtherTitle(title=string4, country=USA), MovieOtherTitle(title=string2, country=USA), MovieOtherTitle(title=string3, country=USA), MovieOtherTitle(title=string1, country=USA)] 

die Elemente in der Liste sind nicht in der gleichen Reihenfolge wie in der Datenbank. Diese Situation verdirbt meine Bewerbung. Können Sie diese Elemente so einstellen, dass sie in derselben Reihenfolge auf die Liste heruntergeladen werden?

+0

Ich frage mich, welche Art Sie instanziieren, dass „Set“ mit? weil die meisten Implementierungen von Set keine Reihenfolge beibehalten. Sie haben keine LIST – DN1

Antwort

0

Sie können eine OrderBy Anmerkung zu Ihrem OneToMany hinzufügen

@OneToMany(mappedBy = "movie", cascade = CascadeType.ALL) 
@OrderBy("id ASC") 
     private Set<MovieOtherTitle> otherTitles; 
+0

OK. Ich habe noch eine Frage. Beim Speichern von Objekten in der Datenbank https://pastebin.com/c7U5NGmk. Die Elemente können auch in anderer Reihenfolge gespeichert werden. Wie in meinem Fall wurde das zweite Element in der Datenbank früher als das erste Element gespeichert. –

Verwandte Themen