我有一个OneToMany关系,我可以插入记录但不能删除它们,当我尝试删除它时遇到“外键约束失败”错误。我已经使用了级联删除孤儿,如下所示,但尚未工作。
父类的成员有以下 getter
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.OneToMany;
@Entity
@DynamicUpdate
public class User extends Employee{
private string userli;
privae List<Message> messagelist();
.....
@OneToMany(fetch = FetchType.LAZY,cascade = CascadeType.REMOVE)
public List<Message> getMessagelist() {
return messagelist;
}
成员类的父类具有以下 getter
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
......
@ManyToOne
public User getReciever() {
return reciever;
}
我也使用了以下注释,但没有工作
@Cascade(org.hibernate.annotations.CascadeType.DELETE)
我的 hibernate 依赖如下
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.2.1.Final</version>
<type>jar</type>
</dependency>
我的删除消息的代码
Message message = (Message) session.get(Message.class, id);
session.delete(message);
tx.commit();
最佳答案
Try to change the cascade = cascadeType.ALL
and check
@OneToMany(fetch = FetchType.LAZY,cascade = CascadeType.ALL)
public List<Message> getMessagelist() {
return messagelist;
It might work but not sure
关于java - 无法在 hibernate 中删除 OneToMany 关系的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17960087/