我有一个包含地址列表的实体(人)。用户界面实际上只允许每个名称输入一个地址。
用户可以创建一个人,然后添加地址。在数据库中,我有一个人行和一个地址行。然后,用户可以通过 UI 更新地址。我在实体管理器上调用合并,以便使用同一个人。问题是地址没有合并,而是添加了一个新行。因此我有一个人行和两个地址行。只有第二个地址行有效。
我对这种关系的代码是:
@OneToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE}, mappedBy = "person")
@OrderBy("id asc")
private List<Address> addresses;
我可以添加任何注释来强制合并孩子吗?还是我必须自己手动执行此操作?
理想情况下,在上面的场景中,我会在 Person 表中保留一行,在地址表中保留一行。
谢谢