hibernate - 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 链接以备不时之需。
解决方案
当父实体发出删除请求时,Hibernate 冒昧地用空值更新子实体的外键,使子实体成为孤儿。由于在外键列上应用空约束,db 抛出错误。
设置 orphanRemoval=true 也不起作用。
为了强制休眠删除子对象,我遵循以下答案。 https://stackoverflow.com/a/17049049/7268798
推荐阅读
- kubernetes - 将 MLFlow 与 Kubeflow 集成
- ubuntu - 不允许从 GCP 服务器上运行的 Jupyter 笔记本下载
- android - 如何检查用户是否存在于android中的SQL数据库中
- go - 错误:目录中的代码......需要导入“......” - 我该怎么办?
- angular - 未捕获(承诺中):ReferenceError:未定义全局
- php - 日历事件未插入
- javascript - 如何正确配置 PutMongo 以执行 upsert?
- c# - Mailkit imapclient 与控制台应用程序一起工作,但不能作为 Windows 服务工作
- php - 读取 PHP Cookie 是不可能的
- python - 如何在 scapy 中获得 http 支持