Postgresql 如何使用JPA将操作“on delete set null”设置为外键

Postgresql 如何使用JPA将操作“on delete set null”设置为外键,postgresql,hibernate,jpa,Postgresql,Hibernate,Jpa,在我的entity类中,有一列定义如下: @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的属性,发现它的操作是关于delete no action。问题是操作必须在delete set n

在我的entity类中,有一列定义如下:

@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的属性,发现它的操作是关于delete no action。问题是操作必须在delete set null上。pgAdmin不允许我更改它的接口。那么我如何用JPA更改它呢?

您可以尝试以下方法:

child.setParent(null);
session.delete(parent);
您还应该能够将其放入预删除:

@PreRemove
private void preRemove() {
    // set foo to null here
}