【发布时间】:2014-01-07 20:03:50
【问题描述】:
我正在尝试删除父级列表而不删除子级
父母:
@Entity
public class Parent {
@Id
@Column(name = "PARENTID")
private Long id;
@OneToMany(cascade = {CascadeType.ALL}, mappedBy = "parent")
private Set<Child> childs = new HashSet<Child>();
...
}
孩子:
@Entity
public class Child {
@Id
@Column(name = "CHILDID")
private Long id;
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name="PARENTID", nullable = false)
private Parent parent;
...
}
我所做的是使用 HQL 查询更新所有孩子,然后也使用 HQL 查询删除父母列表。
问题是这种方式太重了,有没有使用JPA的简单解决方案?
【问题讨论】:
-
您可以使用 JPA 批量更新来清除列表中引用父级的所有子级,然后使用批量删除来删除列表中的所有父级。这是你在 HQL 中所做的吗?
-
你能发布你的代码先更新然后删除吗?