Postgresql 删除主表中的条目时自动删除联接表中的条目

Postgresql 删除主表中的条目时自动删除联接表中的条目,postgresql,hibernate,Postgresql,Hibernate,我有一个WorkpackageEntity,其中包含一个TaskEntity数组,如下所示: 在我们的工作包实体中: @OneToMany(targetEntity = TaskEntity.class, cascade = CascadeType.ALL) private Set<TaskEntity> tasks; @ManyToOne(targetEntity = WorkpackageEntity.class) private WorkpackageEntity wp;

我有一个
WorkpackageEntity
,其中包含一个
TaskEntity
数组,如下所示:

在我们的
工作包实体中

@OneToMany(targetEntity = TaskEntity.class, cascade = CascadeType.ALL)
private Set<TaskEntity> tasks;
@ManyToOne(targetEntity = WorkpackageEntity.class)
private WorkpackageEntity wp;
因此,将自动创建一个名为
workpackage\u tasks
的联接表,其中包含链接的两个实体的ID

我试图实现的是,当我从我的
任务
表中删除
任务实体
时,它还应该自动删除
工作包任务
表中的相应条目

到目前为止,它试图删除
任务中的条目
,并抛出以下(明显)错误:

错误:表“任务”上的更新或删除违反了表“工作包任务”上的外键约束“fknd9vbaspv4un3lkr420fbe78j”

详细信息:键(任务id)=(8)仍然从表“工作包任务”中引用


在删除级联上用
声明FK约束
。我不确定我是否理解
创建表工作包任务(任务id整数,工作包id整数,外键(任务id)引用删除级联上的任务(id),外键(工作包id)引用删除级联上的工作包(id)
当hibernate自动生成我的表时,这可以通过hibernate完成吗?有点像,如果您在集合中使用
cascade=“delete”
,但这将由hibernate处理(它将发送多个
delete
语句),而不是数据库。我认为hibernate不支持数据库级联。你可以多读一点