2016-08-01 5 views
0

ich ein Java Spring MVC haben und eine meiner Modelle Kategoriejava.util.Collections.swap (List <?> Liste, int i, int j) nichts zu tun

@Entity 
@Getter 
@Setter 
@NoArgsConstructor 
@AllArgsConstructor 
@ToString 
public class Category extends AuditModel { 
    @JsonView(DataTablesOutput.View.class) 
    String name; 
    boolean active; 
    @Column(columnDefinition = "TEXT") 
    String description; 
    @Column(length = 70) 
    String metaTitle; 
    @Column(length = 160) 
    String metaDescription; 
    String friendlyUrl; 
    @OneToMany 
    List<Category> secondaryCategories; 
    String image; 
    Long position; 
} 

Ich versuche Positionen von zwei zu tauschen Kategorien in der secondaryCategories-Liste mit java.util.Collections.swap (Listenliste, int i, int j) aber nichts passiert, auch keine Fehler.

Ich habe auch versucht, EntityManager lösen die Objekte vor dem Wechsel ohne Erfolg. Ich habe meine eigene Swap-Methode gemacht, aber ich konnte nicht tauschen.

Wie kann ich zwei Kategorien in secondaryCategories tauschen?

+0

Sie haben * nichts * mit den Entitäten, Sie speichern sie und erwarten, dass sie sich ändern ... – meskobalazs

+0

Wie ist diese Liste bestellt? Wenn Sie '@ OrderBy' oder' @ OrderColumn' nicht angeben, erfolgt die Sortierung nach der ID des Elements. So "swapping" wird nichts in Bezug auf das, was im Datenspeicher ist –

Antwort

0

Sie müssen ihre position Felder oder was auch immer das die Reihenfolge der Entität setzt aktualisieren. Eine Änderung der Reihenfolge der Sammlung bedeutet aus Sicht des ORM nichts.

+0

Ich aktualisierte die Position Felder, aber innerhalb der secondaryCategories die Reihenfolge nicht geändert und meine sekundären Kategorien sind die gleichen wie zuvor aus diesem Grund aufgelistet. – vdruta

+0

Sie können '@ OrderBy' zu Ihrer Entität hinzufügen. Es sollte es tun – meskobalazs

+0

@OrderBy ("Position ASC") hat die Magie. Vielen Dank! – vdruta

Verwandte Themen