2
我正在開發一個restful api.I有兩個實體。用戶和用戶角色。當我請求發送到API的用戶,它給了我JSON數據不包含實體
{
"id": 11,
"name": "mert",
"username": "zbrave",
"password": "$2a$10$N0eqNiuikWCy9ETQ1rdau.XEELcyEO7kukkfoiNISk/9F7gw6eB0W",
"email": "asd",
"photo": "",
"enabled": true,
"roles": [
{
"id": 1,
"role": "ADMIN"
}
],
"online": false
}
當我發送請求UserRole的,它返回
[
{
"id": 1,
"role": "ADMIN"
}
]
但在UserRole的實體,有一個用戶實體。 JSON不返回用戶實體。
public class UserRole implements Serializable {
...
@ManyToOne(targetEntity = User.class, cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinColumn(name = "user_id")
@JsonBackReference
private User user;
...
}
public class User implements Serializable {
...
@OneToMany(targetEntity = UserRole.class, mappedBy = "user", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JsonManagedReference
private List<UserRole> roles;
..
}
我可以從用戶實體的json獲取用戶角色。但不是相反。有什麼不對嗎?感謝幫助。
我使用這兩個註釋遞歸。你的方法解決了這個問題。但json的結論只是引用id。有什麼不同的解決方案?我已經給數據庫ID,爲什麼我給其他ID? – zBrave
@zBrave這是現在可用的解決方案,如果你想能夠序列化雙方你也可以使用DTO,這是一個不同的id,它用來引用父對象o破壞遞歸 –
是的,dto可以是另一個解決方法,謝謝。 – zBrave