我正在努力找出如何在春季從@ManyToMany 關系中檢索數據。我遇到了無限遞歸問題并嘗試了一些解決方案,例如使用@JsonIgnoreProperties,但無濟于事。一個用戶可以有很多組,一個組可以有很多用戶。我可以將用戶添加到組中,但是在檢索與用戶關聯的所有組時,我會從無限遞歸中得到堆棧溢出。我的 GroupAccount 類:@Entitypublic class GroupAccount {//Private variables omitted for brevity@ManyToMany(fetch = FetchType.LAZY)@JoinTable(name = "groupAccount_users", joinColumns = {@JoinColumn(name = "groupAccount_id")}, inverseJoinColumns = {@JoinColumn(name = "user_id")})private List<User> groupMembers = new ArrayList<>();//Constructors, most getters, setters omitted for brevitypublic void addUserToGroupParticipants(User user){ groupMembers.add(user); incrementGroupMembers();}public void incrementGroupMembers() { numberOfMembers++;}public List<User> getGroupMembers(){ return groupMembers;}}我的用戶類:@Entitypublic class User {//Private variables omitted for brevity@ManyToMany(mappedBy="groupMembers", fetch = FetchType.LAZY)private List<GroupAccount> groupAccounts = new ArrayList<>();//Constructors, most getters, setters omitted for brevitypublic List<GroupAccount> getUsersAccounts() { return groupAccounts;}}理想情況下,我希望能夠使用用戶 ID 發送獲取請求,然后檢索與該用戶關聯的所有 GroupAccount 對象。稍后,我將希望能夠查看與特定 GroupAccount 關聯的所有用戶
2 回答

MYYA
TA貢獻1868條經驗 獲得超4個贊
您應該使用@JsonIgnore注釋groupMembers來避免陷入無限遞歸。
@ManyToMany(fetch = FetchType.LAZY)
@JsonIgnore
@JoinTable(name = "groupAccount_users",
joinColumns = {@JoinColumn(name = "groupAccount_id")},
inverseJoinColumns = {@JoinColumn(name = "user_id")})
private List<User> groupMembers = new ArrayList<>();
添加回答
舉報
0/150
提交
取消