Hibernate OneToMany级联类型。全部重复
我有两张桌子:Hibernate OneToMany级联类型。全部重复,hibernate,jpa,one-to-many,Hibernate,Jpa,One To Many,我有两张桌子: @Entity @Table(name = "consultas_sql") public class ConsultaSQL implements java.io.Serializable { //... @OneToMany(mappedBy = "consultaSQL", orphanRemoval = true, cascade = CascadeType.ALL) private List<ParametroS
@Entity
@Table(name = "consultas_sql")
public class ConsultaSQL implements java.io.Serializable {
//...
@OneToMany(mappedBy = "consultaSQL", orphanRemoval = true,
cascade = CascadeType.ALL)
private List<ParametroSQL> parametros;
//...
}
如果我创建一个ConsultaSQL类型的新对象并插入一个ParametroSQL类型的新对象,则此保存成功
问题是,当我在编辑ConsultaSQL时添加一个新的ParameterSQL时,它会使ParameterSQL加倍,换句话说,它会在数据库中重复保存
我想我的关系有问题。有人能帮我吗
对不起我的英语
谢谢大家
我编辑了这篇文章,添加了插入和更新的命令。以下代码:
public T insert(final T entity) {
getEntityManager().persist(entity);
return entity;
}
public T update(T entity) {
return getEntityManager().merge(entity);
}
谢谢。您能发布两种情况下插入数据的代码吗?我在问题中添加了插入和更新代码。感谢您发布了实际调用此插入和更新方法的代码,以及如何在这两个实体中定义ID?是的,如果您的代码中没有正确定义主键,就会发生这种情况。是的,我的代码中正确定义了主键。问题是当我在ConsultaSQL中添加新的ParameterSQL时。如果我在编辑已定义id的ConsultaSQL时添加此参数,则参数SQL(即没有id的新参数)将被复制。谢谢
public T insert(final T entity) {
getEntityManager().persist(entity);
return entity;
}
public T update(T entity) {
return getEntityManager().merge(entity);
}