当我从具有其他外键的表中删除条目时,相应的记录也不会被删除

时间:2019-06-12 14:53:18

标签: java sql spring hibernate jpa

我有一个表(实体),我根据ID从Java中的另一个实体中删除了一些条目。

此表具有指向其他表的外键,假设这些字段是ID1和ID2。 当我使用HQL查询删除具有ID的条目时,具有ID1和ID2的条目仍然存在。 那些具有ID1和ID2的实体与@ManyToOne(CascadeType.ALL)结合在一起,所以我不能使用orphanRemoval = true ..

有人知道我应该做什么吗?

实体类:

@ManyToOne(targetEntity = First.class, cascade = {CascadeType.ALL})
@JoinColumn(name = "ID_LINE_HEADER")
private First lineHeader;

@ManyToOne(targetEntity = Second.class, cascade = {CascadeType.ALL})
@JoinColumn(name = "ID_LINE_CONTENT")
private Second lineContent;

查询:

        @Query(value = "" +
        "Delete " +
        "from " +
        "   Entity u " +
        "where " +
        "  u.JobExecutionId = :JobExecution ")

1 个答案:

答案 0 :(得分:1)

转到关系的另一端(在您的情况下为FirstSecond类),在其中具有@OneToMany批注,并将orphanRemoval属性设置为{{ 1}}。

就像这样:

true