首页 > 解决方案 > Spring hibernate 生成带有空值的查询

问题描述

当我删除贷款实体时出现以下问题。在 hibernate 构建的查询中,使用 hibernate show-sql:true 运行应用程序并发现 null。

Hibernate: update activity set loan_id=null where loan_id=?
2020-07-14 23:53:20.944  WARN 13820 --- [nio-6080-exec-3] o.h.engine.jdbc.spi.SqlExceptionHelper   : SQL Error: 19, SQLState: null

按照这个答案,实体类中的“Cascade.ALL”没有帮助。除了添加行以首先查找和删除子实体,然后尝试删除贷款之外,我是否还有其他选择。

ER图:

在此处输入图像描述

Git 链接以备不时之需。

标签: hibernatespring-data-jpa

解决方案


当父实体发出删除请求时,Hibernate 冒昧地用空值更新子实体的外键,使子实体成为孤儿。由于在外键列上应用空约束,db 抛出错误。

设置 orphanRemoval=true 也不起作用。

为了强制休眠删除子对象,我遵循以下答案。 https://stackoverflow.com/a/17049049/7268798


推荐阅读