gpt4 book ai didi

java - Hibernate删除顺序不维持

转载 作者:太空宇宙 更新时间:2023-11-04 10:20:42 27 4
gpt4 key购买 nike

删除时,我将从多个表中删除记录。我有两个表 .job_execution 和 job。现在我想删除作业,所以首先我必须删除 job_execution。

job_execution 映射到作业表。

@ManyToOne(optional = false)
@JoinColumn(name = "job_id")
private Job job;

现在我要删除

jobExecutionRepository.delete(jobExecution);
jobRepository.delete(job);

但我收到错误:表“job”上的更新或删除违反了表“job_execution”上的外键约束“job_execution_job_id_fkey”。

我还检查了 sql 查询,发现 jobExecutionRepository 删除查询未执行。它直接调用jobRepository删除查询。

最佳答案

我想您必须在托管环境中进行编程,因此每个 session 都在数据库级别的事务中运行。

session 关闭 session 刷新时,在数据库中删除 hibernate 应用。因此,正如您所说,当您有这样的 child / parent 关系时;您必须先删除子项。但是当 session 刷新时会应用并提交查询。

因此,您必须自己处理它,并在删除子项后立即刷新或关闭 session

或者,如果您具有双向关系并且父实体中有一组子实体。您可以在设置上使用 cascade.removecascade.delete 来自动 hibernate 管理它。

关于java - Hibernate删除顺序不维持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51204168/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com