java - 子对象没有被删除
问题描述
我有级联删除子对象的问题。我使用 EclipseLink。当父表中的主键也是子表中的主键时的一对一关系的映射。
class Parent {
@Column(name = "PARENT_ID", unique = true, nullable = false)
private Long id;
@OneToOne(cascade = CascadeType.ALL, orphanRemoval = true, mappedBy = "parent")
private Child child;
}
class Child {
@Id
@JoinColumn(name = "PARENT_ID", unique = true)
private Parent childId;
}
当我尝试“在:parentIds 中从父父父 WHERE parent.id 中删除”时,我得到了找到子对象的信息。你能给我一些建议吗?
解决方案
这个问题通常发生在 OneToOne 类型的映射中,由于从父到子的外键约束,因为子实体将指向一个不存在的实体。您必须首先摆脱引用,通过查找实体及其映射,将引用设置为空,然后您可以合并/保留/删除它。
这里问了一个类似的问题,请从这里寻求帮助: JPA orphan removal does not work for OneToOne Relations
推荐阅读
- xaml - 使按钮大小为网格单元 XamForms 的 50%
- angular - % 不被接受为 Web API 中字符串参数的一部分
- javascript - 无法使用 jenkins 作业发布 node.js 包
- python - raise... from: 使用 pdb 移动到被包装异常的堆栈中
- html - 使用 css-transforms 为遇到定位问题的所有浏览器创建掩码
- sql-server - 有没有办法在每次应用程序创建链接服务器时自动将新数据库添加到链接服务器?
- python - Numpy 如何从非均匀分布中采样随机数?
- redis - Redis Streams 在 XDEL 之后阻塞 XREAD 的行为不一致
- extjs - Extjs 存储监听器
- nsis - 在 NSIS 中与 Exec 一起使用后,有什么方法可以释放可执行文件及其依赖项