我有兩個表之間的雙向@ManyToMany關係:休眠管理@ManyToMany表的插入和訂單
@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<>();
}
當我更新他們的用戶:
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);
}
當我查看相應的連接表,插入的行沒有任何順序。
所以,當我送組的用戶的身體和列表裏面:
{
[
{
"id": 2,
"name": "B"
},
{
"id": 1,
"name": "A"
}
]
}
然後我打電話服務,從數據庫中提取數據和順序是不一樣的:
{
"id": 1,
[
{
"id": 1,
"name": "A"
},
{
"id": 2,
"name": "B"
}
]
}
我如何管理連接表中的行的順序? 我需要有記錄的順序連接表相同,作爲請求的順序:
| 1 | 2 |
| 1 | 1 |
我使用Oracle數據庫。
是否使用JPARepository? – ByeBye
我正在使用CrudRepository –
你檢查了我的答案嗎? – ByeBye