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

Hibernate中嵌入字段的默认值。java.sql.SQLException:字段';url';不';没有默认值,java,hibernate,embeddable,Java,Hibernate,Embeddable,我有一个抽象类A,类B和C是A的子类。类B具有嵌入字段d。现在,当我尝试保存B的一个实例时,一切都很好。但是,在创建C的实例并保存它时,我遇到了一个错误: java.sql.SQLException: Field 'string' doesn't have a default value. Eg类: public abstract class A { } @Embeddable public class D { private String string; } public

我有一个抽象类
A
,类
B
C
A
的子类。类
B
具有嵌入字段
d
。现在,当我尝试保存
B
的一个实例时,一切都很好。但是,在创建
C
的实例并保存它时,我遇到了一个错误:

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

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
字段在插入时没有填充,并且声明为NOTNULL。如果在该表中插入一条记录并将
字符串保持为空,则会收到完全相同的错误

最终导致问题的原因是两个类都使用了相同的表,
string
列是为了对象
b
而添加的,在使用
c
时不填充