2

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

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

例如类:

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 {

}
4

1 回答 1

1

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

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

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

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

于 2016-01-13T13:26:26.020 回答