我有一个表(实体),我根据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 ")
答案 0 :(得分:1)
转到关系的另一端(在您的情况下为First
和Second
类),在其中具有@OneToMany
批注,并将orphanRemoval
属性设置为{{ 1}}。
就像这样:
true