当我想删除任何类(class)的ID时,与该类(class)相关的评论也可以删除。但是控制台出现了一个问题。
Hibernate java ORA-02292:违反完整性约束 - 找到子记录
类(class).java
@OneToMany(fetch=FetchType.LAZY, cascade=CascadeType.ALL,mappedBy="course")
private Set<Review> reviews = new HashSet<Review>();
Review.java
@ManyToOne(fetch=FetchType.LAZY,cascade=CascadeType.ALL)
@JoinColumn(name = "COURSE_ID", nullable = false)
private Course course;
我尝试使用orphanRemoval=true
,但没有任何改变。
如何解决这个问题?
最佳答案
将子表中的外键约束指定为ON DELETE CASCADE
。您需要在调用 EntityManager.remove(course)
后调用 EntityManager.clear()
,因为需要刷新持久性上下文 - 子实体不应存在在数据库中删除它们后,在持久性上下文中。
@ManyToOne(fetch=FetchType.LAZY,cascade=CascadeType.ALL)
@JoinColumn(name = "COURSE_ID", nullable = false)
@OnDelete(action = OnDeleteAction.CASCADE)
private Course course;
关于java - hibernate java ORA-02292 : integrity constraint violated - child record found Course with Review,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57672154/