2 回答

TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超4個(gè)贊
在定義關(guān)系時(shí)的休眠中,您擁有關(guān)系的擁有方。關(guān)系的擁有方是粗略說(shuō)的持有@JoinColumn 映射的一方。當(dāng)調(diào)用 update/remove/persist 時(shí),所有這些操作都是通過(guò)擁有方執(zhí)行的。擁有集合時(shí),您需要維護(hù)集合的兩端。
當(dāng)您向 Employee 添加新地址時(shí),您需要確保該地址也具有對(duì) Employee 的反向引用。您的 Employee 實(shí)體是您的關(guān)系的所有者。
如果您有類(lèi)別 - 項(xiàng)目關(guān)系,并且您將一個(gè)項(xiàng)目從一個(gè)類(lèi)別移動(dòng)到另一個(gè)類(lèi)別。將 Item 從 category1 列表移動(dòng)到 category2 列表是不夠的,您還需要更改 Item 中的反向引用。

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超5個(gè)贊
您需要取消注釋該行:
address.setEmployee(employee);
在您的控制器中。
這是因?yàn)槟x了這樣的映射:
@JsonIgnore
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "employee_id", nullable = false, referencedColumnName = "employee_id")
private Employee employee;
nullable = false表明,必須有來(lái)自Adressto的引用Emplyee。但是錯(cuò)誤可能來(lái)自對(duì)數(shù)據(jù)庫(kù)的約束,即該列不能為空。
添加回答
舉報(bào)