我有一个"类别"引用自我的实体。
mvn package
当我保存没有父母的实体时,它会插入"两个"记录:
| ID | NAME |位置| SLUG | PARENT_ID |
| 1 | 1 | 1 | 1 | 2 |
| 2 | null | 0 | null | null |
我想插入"一个" PARENT_ID为null的记录,但它将记录(id = 2)和记录(id = 1)作为子项插入。
我使用Spring-Data JPA接口API保存记录:
@Entity
public class Category extends NamedEntity {
private String slug;
private int position;
@ManyToOne(cascade = { CascadeType.PERSIST })
private Category parent;
@OneToMany(mappedBy = "parent")
private Set<Category> children = new HashSet<Category>();
... getters / setters ...
答案 0 :(得分:0)
将parent
的映射更改为以下内容,但不会发生这种情况。
@ManyToOne
private Category parent;
你观察到这种行为的原因是CascadeType.PERSIST
将为你创建一个新的空类别而不是Hibernate只是用空的父母创建子记录。