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

时间:2016-01-13 12:47:11

标签: java hibernate embeddable

我有一个抽象类A,类BCA的子类。类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 {

}

1 个答案:

答案 0 :(得分:1)

您收到的错误是java.sql.Exception告诉您:

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

从我假设您使用MySQL的措辞,以及错误意味着什么,您的string字段未在插入时填充并声明为非null。如果要在该表中插入记录并将string列留空,则会收到完全相同的错误。

最终导致问题的原因是您有两个类使用相同的表,为了对象string而添加了b列,并且在使用{{ 1}}。