我有一個用戶,該用戶有費用。在費用表中,我想要費用 ID、費用的用戶和費用金額。在用戶表中,我想要用戶 ID、他的用戶名、他的當前余額和他所做的所有費用的列表。我想加入這兩個,但我不知道如何正確引用用戶,因此用戶表單 Expense 類始終為空。首先,我發送 post 請求來創建一個用戶:{ "username":"abcd", "balance":"100"}然后我想產生一筆費用,但在這里我不確定如何正確發送用戶:{ "username":"abcd", "id":"1", "balance":"100", "amount":"20"}這不起作用,然后我這樣嘗試:{ "User":{ "username":"abcd", "id":"1", "balance":"100" }, "amount":"20"}那也沒有用。這是用戶類:@Entity@Table(name = "Users")public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @NotBlank(message = "Username is mandatory") private String username; private Double balance = 0.0; @OneToMany(mappedBy = "user") private List<Expense> expenses; ...我從這里刪除了 getter 和 setter。這是費用類:@Entity@Table(name = "Expenses")public class Expense { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @ManyToOne @JoinColumn(name = "user_id") private User user; private Double amount; ...為了節省我使用的費用.save()并JpaRepository<Expense, Long>取回我使用的一切.findAll()。結果總是一樣的:得到所有的費用{ "id": 1, "user": null, "amount": 20}并為所有用戶提供{ "id": 1, "username": "abcd", "balance": 100, "expenses": []}現在我不確定我是否以錯誤的方式發送請求或以錯誤的方式加入表格或兩者兼而有之。
1 回答

一只甜甜圈
TA貢獻1836條經驗 獲得超5個贊
嘗試使用此有效負載發送 post 請求(字段“user”以小寫字母開頭),我認為用戶對象中的“id”字段應該足夠了
{
"user":{
"username":"abcd",
"id":"1",
"balance":"100"
},
"amount":"20"
}
編輯:您還需要將 @JsonIgnoreProperties("expenses") 添加到您的 Expense 實體中,以防止 jackson 遞歸讀取 json
@Entity
@Table(name = "Expenses")
public class Expense {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@JsonIgnoreProperties("expenses")
@ManyToOne
@JoinColumn(name = "user_id")
private User user;
private Double amount;
.....
添加回答
舉報
0/150
提交
取消