postgresql - 如何使用 JPA 将“on delete set null”操作设置为外键
问题描述
在我的实体类中,我有一个这样定义的列:
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="foo_id", nullable=true, updatable=true, foreignKey=@ForeignKey(name="fk_foo_fee"))
private Foo foo;
今天在 pgAdmin 上查看外键的属性,fk_foo_fee
发现它的作用是on delete no action
. 问题是动作必须是 on delete set null
。pgAdmin 不允许我用它的界面来改变它。那么我怎样才能用JPA改变它呢?
解决方案
你可以试试这个:
child.setParent(null);
session.delete(parent);
您还应该能够将其放入 PreRemove:
@PreRemove
private void preRemove() {
// set foo to null here
}
推荐阅读
- javascript - 通过 for 循环向元素添加事件会导致所有元素仅影响循环中的最后一个元素
- html - 在绝对定位的 div 元素后恢复正常的 HTML 流
- swift - 如何以 72 个字符包装一个字符串
- javascript - 为什么 JavaScript 不加载所有图片?
- r - 从包含三个变量的 csv 文件创建邻接矩阵
- javascript - 限制firestore中相等过滤器的数量?
- dll - Windows 中的 Libmtp (msys/mingw):运行问题
- java - 测试未展示的插页式广告。错误代码 3 - 没有填充
- javascript - 如何在 JavaScript 中替换它
- c++ - Xcode 10 C++ 错误(不能在没有输出的情况下在控制台中输入)