我目前正在做一个项目,在这个项目中我必须使用多对一关系。我想从数据库中的现有表中检索父级并映射到一个新的子对象。但是每次我这样做时它都会失败,而是尝试再次创建父级。以下是变量声明:
@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
谢谢你