私は現在、多対一の関係を使用する必要があるプロジェクトに取り組んでいます。DB 内の既存のテーブルから親を取得し、新しい子オブジェクトにマップしたいと考えています。しかし、これを行うたびに失敗し、代わりに親をもう一度作成しようとします。変数宣言は次のとおりです。
@Entity @Table (name= "children")
public class Child implements Serializable{
@ManyToOne (fetch = FetchType.EAGER, cascade = {CascadeType.PERSIST})
@JoinColumn (name = "parent_id",referencedColumnName = "id")
private Parent parent;
}
新しい子レコードを作成するたびに、データベースから取得した既存の親のデータを使用して新しい親を作成しようとし、このエラーが発生します:
duplicate key value violates unique constraint "parents_parent_name_key"
Detail: Key (parent_name)=(Jimmy) already exists.
Batch entry 0 insert into parents(parent_name, id) values ('Jimmy', '13') was
aborted. Call getNextException to see the cause.
次に、これをやり直そうとすると、別のエラーが発生します。
org.hibernate.PersistentObjectException: detached entity passed to persist:
com.house.entity.Parent
ありがとうございます