jpa中的双向一对一关系问题(创建时缺少其中一个实体的id)

bttbmeg0  于 2023-10-19  发布在  其他
关注(0)|答案(1)|浏览(95)

所以,我在两个名为Customer和Address的类之间有一对一的关系。
在Customer类中,我有:@OneToMany(mappedBy=“customer”,cascade = CascadeType.ALL)private Set地址;
在地址中,我有:@ManyToOne(optional=false)private Customer客户;
现在,当我尝试用它的地址创建一个新客户时,一切都很好,但是在我的数据库的数据表中,列customer_id是null,我不知道为什么。我以为CascadeType.ALL可以完成所有这些链接工作。我还尝试在Address端的关系上添加JoinColumn,但也不起作用。我该怎么办?希望我说得够清楚了。

aoyhnmkz

aoyhnmkz1#

请确保您正在保存引用的两端,因为它是一个双向关系。
Customer类中创建一个这样的方法:

public void addAddresses(Address address) {
    addresses.add(address);
    address.setCustomer(this);
}

然后,创建Customer并添加addresses

Customer c = new Customer();
c.addAddresses(new Address());
customerRepository.save(customer);

相关问题