【发布时间】:2018-08-03 12:29:06
【问题描述】:
我在尝试使用 JPA @NamedQuery 从备用表执行 DELETE 时遇到了一些问题。
我想创建一个 @Schedule 任务 来为 MyEntityDB 中的一些孤立数据安排删除作业。
我将 MyEntityDB 中的数据与 OTHER_TABLE 中的其他数据进行比较 NOT EXISTS,然后删除 MyEntityDB 中但 OTHER_TABLE 中不存在的数据。
为此,我创建了一个 MyEntityRepository 接口来创建删除方法。
这样,我想运行计划任务。
我应该如何解决这个问题?
MyEntity.java
@NamedQueries({
@NamedQuery(
name = "deleteOrphans",
query = "DELETE FROM MyEntity " +
"WHERE NOT EXISTS (" +
"SELECT NULL FROM OTHER_TABLE ot " +
"WHERE ot.ID = :myEntityId)"
)
})
MyEntityRepository.java
void deleteOrphans();
【问题讨论】: