住所のリストを含むエンティティ(Person)があります。このためのUIでは、実際には名前ごとに1つのアドレスしか入力できません。
ユーザーは個人を作成してからアドレスを追加できます。データベースには、1つの人の行と1つの住所の行があります。その後、ユーザーはUIを介してアドレスを更新できます。同じ人が使用されるように、エンティティマネージャーでmergeを呼び出しています。問題は、アドレスがマージされないが、新しい行が追加されることです。したがって、1人の行と2つの住所の行があります。2番目のアドレス行のみが有効です。
この関係の私のコードは次のとおりです。
@OneToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE}, mappedBy = "person")
@OrderBy("id asc")
private List<Address> addresses;
子を強制的にマージするための注釈を追加できますか?または、これを自分で手動で行う必要がありますか?
理想的には、上記のシナリオでは、Personテーブルに1行、addressテーブルに1行あります。
ありがとう