Hibernate 中嵌入字段的默认值。 java.sql.SQLException: 字段 'url' 没有默认值

Default value for an embedded field in Hibernate. java.sql.SQLException: Field 'url' doesn't have a default value

我有一个摘要 class A,class BCA 的子class . Class B 有一个嵌入字段 d。现在,当我尝试保存 B 的实例时,一切都很好。但是,在创建 C 的实例并保存它时,出现错误:

java.sql.SQLException: Field 'string' doesn't have a default value.

例如classes:

public abstract class  A {

}

@Embeddable
public class D {

    private String string;
}

public class B extends A{

    @Embedded
    @NotNull
    private D d;
}

public class C extends A {

}

你得到的错误是 java.sql.Exception 告诉你:

`Field 'string' doesn't have a default value.`

从措辞来看,我假设您使用的是 MySQL,错误的意思是,您的 string 字段在插入时未填充并声明为非空。如果您要将记录插入 table 并将 string 列留空,您将收到完全相同的错误。

最终导致您的问题的原因是您对 类 使用了相同的 table,为了对象 [=15= 添加了 string 列] 并且在使用 c.

的情况下不填充