【发布时间】:2019-03-16 13:55:24
【问题描述】:
如何使用 hibernate deleteAll() 删除所有条目?
我有一个具有多个 @oneToMany 关系的类(具有 +5000 个子实体),当我尝试执行 deleteAll 时,我得到标题错误
oracle.jdbc.OracleDatabaseException: ORA-02292: integrity constraint (xxx) violated - child record found
我试过添加
cascade = {CascadeType.ALL}
和
orphanRemoval=true
到@OneToMany 关系类,但没有帮助。
跟下面的类是双向关系
@OneToMany(targetEntity = XXX.class, fetch = FetchType.LAZY, cascade = {CascadeType.ALL}, orphanRemoval=true, mappedBy = "zzz")
@Fetch(FetchMode.SELECT)
@JsonManagedReference
private List<XXX> xxx;
@LazyCollection(LazyCollectionOption.FALSE)
@OneToMany(targetEntity = YYY.class, fetch = FetchType.LAZY, orphanRemoval=true, cascade = {CascadeType.ALL}, mappedBy = "zzz")
@Fetch(FetchMode.SELECT)
@JsonManagedReference
private List<YYY> yyy;
与子元素类似
@ManyToOne(fetch = FetchType.LAZY, cascade = {CascadeType.ALL})
@JoinColumn(name = "XXX", nullable=false)
@JsonBackReference
private XXX zzz;
我也尝试过 HQL DELETE 查询,但这也不能让我去任何地方。
我到底如何一致地删除所有这些实体? 到目前为止,自从这个问题开始以来,我已经手动删除了表(几天前所有实体都被删除了),但这开始让我很恼火,但我不知道该怎么做。
谢谢!
【问题讨论】:
标签: java hibernate spring-boot oracle10g