0
Hibernate for OneToManyマッピングに挿入を行っている間。同じデータが2回挿入されています。Hibernate内のOneToManyマッピング用の重複データ
従業員:
@Entity
public class Employee {
@Id
@GeneratedValue
private int empId;
private String name;
private String designation;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "employee", fetch = FetchType.EAGER, orphanRemoval = true)
private Set<Address> addresses = new HashSet<>();
}
住所:
@Entity
public class Address {
@Id
@GeneratedValue
private int addressID;
private String city;
private String country;
@ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinColumn(name = "empId")
@JsonIgnore
private Employee employee;
}
私は、データを保存するためのPOSTリクエストを使用します。第一、従業員のための 保存要求:第二のため
{
"name": "Test1",
"designation": "SAL1",
"addresses": [
{
"city": "Delhi",
"country": "India"
},
{
"city": "Noida",
"country": "India"
}
]
}
保存要求を従業員:
この場合、アドレステーブルには、Noida:IndiaとDelhi:Indiaのそれぞれに4つのエントリが2つ含まれています。
Noida:Indiaでは1、Delhi:Indiaでは1となっています。
リクエストが2回送信されているかどうかを確認してください。 –
いいえ、私は2人の異なる従業員のために2回送っていますが、アドレステーブルにそのアドレスをすでに持っていて、アドレステーブルに新しい行を作成するのではなく、そのアドレスにマップする必要があります。 –
次に、国と都市を含む複合キーを作成する必要があります。複合キーを調べる –