Ich habe bidirektionale @ManyToMany Beziehung zwischen zwei Tabellen:Hibernate verwalten @ManyToMany Tabelle Einfügungen und Aufträge
@Table(name = "USERS")
public class User extends AbstractEntity {
@ManyToMany
@JoinTable(name = "USERS_GROUPS",
joinColumns = {@JoinColumn(name = "USER_ID")},
inverseJoinColumns = {@JoinColumn(name = "GROUP_ID")})
private List<Group> groups = new ArrayList<>();
}
@Entity
@Table(name = "GROUPS")
public class Group extends AbstractEntity {
@JsonIgnore
@ManyToMany(mappedBy = "groups")
private List<User> users = new ArrayList<>();
}
Wenn ich die Aktualisierung Benutzer von ihnen:
public User linkToGroup(User user) {
User userPersistent;
Group groupPersistent;
// ....
for (Group group : user.getGroups()) {
groupPersistent = groupService.findById(group.getId());
groupPersistent.getUsers().add(user);
// Update with index for proper JSON response
user.getGroups().set(user.getGroups().indexOf(groupPersistent), groupPersistent);
userPersistent.getGroups().add(group);
}
return userRepository.save(userPersistent);
}
Wenn ich Blick in die entsprechende Join-Tabelle, die Zeilen ohne Reihenfolge eingefügt.
Also, wenn ich Benutzer Körper und eine Liste der Gruppen im Inneren bin das Senden:
{
[
{
"id": 2,
"name": "B"
},
{
"id": 1,
"name": "A"
}
]
}
Und dann Dienst Ich rufe die Daten von DB extrahiert und die Reihenfolge ist nicht das gleiche:
{
"id": 1,
[
{
"id": 1,
"name": "A"
},
{
"id": 2,
"name": "B"
}
]
}
Wie kann ich die Reihenfolge der Zeilen in Join-Tabelle verwalten? Ich brauche die Reihenfolge der Datensätze haben, in der Tabelle kommt die gleiche, wie die Reihenfolge der Anfrage:
| 1 | 2 |
| 1 | 1 |
ich Oracle DB bin mit.
Stehen Sie mit JPARepository? – ByeBye
Ich benutze CrudRepository –
Haben Sie meine Antwort überprüft? – ByeBye