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 B
和 C
是 A
的子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
.
的情况下不填充
我有一个摘要 class A
,class B
和 C
是 A
的子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
.