Java Hibernate 4使用oneToMany集合删除实体

Java Hibernate 4使用oneToMany集合删除实体,java,hibernate,Java,Hibernate,我正在尝试从数据库中删除用户实体 //whatever @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy = "user", orphanRemoval = true) private Set<Filter> filters = new HashSet<Filter>(); //whatever //whatever @ManyToOne(fetch = FetchTyp

我正在尝试从数据库中删除用户实体

//whatever
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy = "user", orphanRemoval = true)
    private Set<Filter> filters = new HashSet<Filter>();
//whatever

//whatever
@ManyToOne(fetch = FetchType.LAZY, cascade = {CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH, CascadeType.DETACH})
@JoinColumn(name = "user_id", nullable = false)
private User user;
//whatever
//随便什么
@OneToMany(fetch=FetchType.LAZY,cascade=CascadeType.ALL,mappedBy=“user”,orphan=true)
私有集过滤器=新HashSet();
//随便
//随便
@manytone(fetch=FetchType.LAZY,cascade={CascadeType.MERGE,CascadeType.PERSIST,CascadeType.REFRESH,CascadeType.DETACH})
@JoinColumn(name=“user\u id”,nullable=false)
私人用户;
//随便
但是得到: 错误SqlExceptionHelper:146-无法删除或更新父行:外键约束失败(
web\u app\u db
filters
,constraint
FK\u8oeay5yddrcgd4i71m1yda1hb
外键(
user\u id
)引用
users
user\u id

orphanRemoving=true不起作用,我该怎么办?

试试以下方法:

@ManyToOne(fetch = FetchType.LAZY, cascade = {CascadeType.ALL})
@JoinColumn(name = "user_id", nullable = false)
private User user;

@JohnJohnson你能给我看一下过滤器的整个实体和用户实体吗?用户和过滤器是在同一个实体中吗?私有集filters=newhashset似乎是错误的。也许您可以去掉=new HashSet();您可以演示如何生成ID,但至少对于使用私有变量的整个实体来说,这可能是最好的。谢谢