Java 删除父记录时,子联接表上的JDBC错误列不能为null

Java 删除父记录时,子联接表上的JDBC错误列不能为null,java,mysql,spring-boot,hibernate,jpa,Java,Mysql,Spring Boot,Hibernate,Jpa,我有以下父模型: public class RdResponses extends Model implements Serializable { private static final long serialVersionUID = 1L; @Basic(optional = false) @Column(name = "name") private String name; // child records

我有以下父模型:

public class RdResponses extends Model implements Serializable {
    
    private static final long serialVersionUID = 1L;

    @Basic(optional = false)
    @Column(name = "name")
    private String name;

    // child records
    @JoinColumn(name = "response_id", nullable = false)
    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, orphanRemoval = true)
    private List<GenProtectionNeed> genProtectionNeedList;

    /* setters and getters omitted for brevity */
}
这将导致以下SQL错误:

2021-04-14 23:20:44.379 ERROR 212817 --- [21-7000-exec-11] o.h.engine.jdbc.spi.SqlExceptionHelper   : Column 'network_access_value_id' cannot be null
我不完全清楚JPA/Hibernate为什么试图将此字段的值设置为
NULL
,但这样做会抛出这个JDBC错误。我确信错误就在我的代码中的某个地方——因为当我在MySQL中手动删除记录时,它会正确地删除和级联


我设置了什么错误?我尝试了不同类型的组合,并将mappedBy设置在关系的一方,无效。

使用
CascadeType。在RdResponses类中删除
可能会解决您的问题。

这不包括在CascadeTypes中吗?全部?是,但这两者之间有区别请参见添加CascadeType.REMOVE没有更改错误是否删除了orniremove=true?是的,我删除了。它仍然在该字段上报告相同的错误您是否使用最新的Hibernate版本5.4.30?如果是这样,并且您仍然存在问题,请在issue tracker()中创建一个问题,并使用一个复制该问题的测试用例()。
    responseService.responses().delete(response);
2021-04-14 23:20:44.379 ERROR 212817 --- [21-7000-exec-11] o.h.engine.jdbc.spi.SqlExceptionHelper   : Column 'network_access_value_id' cannot be null