Hibernate中嵌入字段的默认值。 java.sql.SQLException:字段'url'没有默认值
问题描述:
我有一个抽象类A
,类B
和C
是A
的子类。类B
有一个嵌入字段d
。现在,当我尝试保存B
的实例时,一切都很好。但是创造的C
一个实例,并保存它,我得到一个错误:Hibernate中嵌入字段的默认值。 java.sql.SQLException:字段'url'没有默认值
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 {
}
答
你得到了错误的java.sql.Exception
告诉你:
`Field 'string' doesn't have a default value.`
从措辞我假设你使用的MySQL,错误的意思是,你的string
字段没有在插入时填充和宣布为不是n ULL。如果您要将记录插入该表并将string
列留空,您将收到完全相同的错误。
什么导致最终你的问题是,你必须使用这两个类在同一个表中,列string
添加对象b
着想,使用c
的情况下,不填充。