Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate 在@OneToMany上级联删除时休眠ConstraintViolationException_Hibernate_One To Many_Cascade - Fatal编程技术网

Hibernate 在@OneToMany上级联删除时休眠ConstraintViolationException

Hibernate 在@OneToMany上级联删除时休眠ConstraintViolationException,hibernate,one-to-many,cascade,Hibernate,One To Many,Cascade,这似乎是一个非常简单的问题,但我已经为此挣扎了一段时间。我有两个实体客户端和用户,其中客户端是用户的父级。实体注释如下所示: Client: @OneToMany(mappedBy = "client", fetch = FetchType.LAZY) @Cascade({CascadeType.SAVE_UPDATE, CascadeType.DELETE}) private List<User> users = new ArrayList<User&

这似乎是一个非常简单的问题,但我已经为此挣扎了一段时间。我有两个实体客户端和用户,其中客户端是用户的父级。实体注释如下所示:

Client:
    @OneToMany(mappedBy = "client", fetch = FetchType.LAZY)
    @Cascade({CascadeType.SAVE_UPDATE, CascadeType.DELETE})
    private List<User> users = new ArrayList<User>();

User:
    @ManyToOne(optional = false, fetch = FetchType.EAGER, cascade = {CascadeType.REFRESH})
    @JoinColumn(name = "client_id")
    private Client client;

    public User(Client client, String userName, String password) {
        client.getUsers().add(this);
    }
客户端:
@OneToMany(mappedBy=“client”,fetch=FetchType.LAZY)
@级联({CascadeType.SAVE_UPDATE,CascadeType.DELETE})
private List users=new ArrayList();
用户:
@ManyToOne(可选=false,fetch=FetchType.EAGER,cascade={CascadeType.REFRESH})
@JoinColumn(name=“客户号”)
私人客户;
公共用户(客户端、字符串用户名、字符串密码){
client.getUsers().add(此);
}
我需要在客户端上删除以级联到用户。如果在一个Hibernate会话中创建客户机和用户,并在另一个Hibernate会话中删除客户机,则此操作有效。但是,如果我尝试在同一个会话中删除客户机,则永远不会发出“在用户上删除”命令,我会得到org.hibernate.exception.ConstraintViolationException


有人知道如何解决这个问题吗?

事实证明,持久化服务使用批量删除HQL语句删除客户机,这显然不会将删除级联到子用户