我有如下的Entity类:
@Entity
@Table(name = "PARENT")
public class Parent {
@OneToMany(mappedBy = "parent")
private List<Child> childs;
}
和
@Entity
@Table(name = "CHILD")
public class Child {
@ManyToOne
@JoinColumn(name = "PARENT_ID", referencedColumnName = "ID", insertable = false, updatable = false)
private Parent parent;
}
在我的代码中,当我尝试保存孩子时,父母也将得到保存:
Parent parent = parentRepository.findOne(id);
//Code which changes parent attributes
child.setParent(parent);
childRepository.save(child);
我还没有使用parentRepository.save()
,任何级联。并且insertable
,updatable
也设置为false
。
是因为父对象已附加到parentRepository.findOne(id);
调用的上下文而发生的吗?如何避免这种情况?
PS: 我正在使用spring-boot 1.5.9,Spring Data