第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

在spring boot jpa中的多對(duì)一映射中,外鍵未在子表中更新

在spring boot jpa中的多對(duì)一映射中,外鍵未在子表中更新

牛魔王的故事 2022-06-15 09:50:06
我創(chuàng)建了一個(gè)兩個(gè)實(shí)體關(guān)系一對(duì)多(一個(gè)員工有多個(gè)地址)及其雙向關(guān)系,如多對(duì)一。@Entity@Table(name = "Employees")@EntityListeners(AuditingEntityListener.class)public class Employee {@Id@GeneratedValue(strategy = GenerationType.AUTO)@Column(name="employee_id")private Long id;@NotBlankprivate String name;@NotBlankprivate String designation;@Temporal(TemporalType.TIMESTAMP)@LastModifiedDateprivate Date createdAt;@OneToMany(mappedBy = "employee", cascade = CascadeType.ALL)private List<Address> employee_address;和地址實(shí)體如下    @Entity@Table(name = "address")public class Address {    @Id    @GeneratedValue(strategy = GenerationType.AUTO)    private long address_id;    @NotBlank    @Column(name = "address_street", length = 250)    private String street;    @NotBlank    @Column(name = "address_city", length = 50)    private String city;    @NotBlank    @Column(name = "address_state", length = 50)    private String state;    @NotBlank    @Column(name = "address_zipcode", length = 10)    private String zipcode;    @JsonIgnore    @ManyToOne(cascade = CascadeType.ALL)    @JoinColumn(name = "employee_id", nullable = false, referencedColumnName = "employee_id")    private Employee employee;和 EmployeeController 保存數(shù)據(jù)如下@RestControllerpublic class EmployeeController {    @Autowired    EmployeeDAO employeeDAO;    @Autowired    AddressDAO addressDAO;    @PostMapping("/employees")    public void createEmployee(@Valid @RequestBody Employee emp) {        Address address = null;        List<Address> listAddresses = new ArrayList<Address>();        if (emp != null) {            Employee employee = new Employee();            employee.setDesignation(emp.getDesignation());
查看完整描述

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 中的反向引用。


查看完整回答
反對(duì) 回復(fù) 2022-06-15
?
森欄

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ù)的約束,即該列不能為空。


查看完整回答
反對(duì) 回復(fù) 2022-06-15
  • 2 回答
  • 0 關(guān)注
  • 219 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)