【发布时间】:2019-04-17 01:58:01
【问题描述】:
我有以下 JPA 表。我使用了单向 OneToMany 关系。
@Entity
@Table(name = "xxx")
public class Parent {
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name = "Child_ID")
private Set<Child1> child;
//getter setters
}
@Entity
@Table(name = "xxx")
public class Child {
//other colmns
//getter setters
}
当我第一次将条目添加到上面的父集(比如 20)和 save() 时,它会成功保存到数据库。 然后在同一组中,我又添加了 10 个并调用了保存方法。它为db节省了10个新的。如果我再次调用 save 它添加相同的 10 到数据库再次创建重复条目。
Parentrepository.save(parentObject);
【问题讨论】:
-
您能说明一下您是如何调用值的设置和保存的吗?
-
@arjayosma :已编辑问题。我正在使用存储库保存父对象。因为它有 cascadeType All 它也可以保存孩子。
-
你是如何在这里填充你的 parentObject 变量的。您一定是在没有更新 ID 的情况下多次保存同一个对象。
-
@arjayosma :我只是多次保存同一个对象。对于某些孩子,它会更新现有的行,但对于 OneToMany(set) 对象,它会一次又一次地插入。
-
您是否使用保存返回的对象进行进一步设置?
标签: java spring jpa spring-data-jpa