2016-01-13 128 views
2

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

} 

回答

1

你得到了錯誤的java.sql.Exception告訴你:

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

從措辭我假設你使用的MySQL,錯誤的意思是,你的string字段沒有在插入時填充和宣佈爲不是n ULL。如果您要將記錄插入該表並將string列留空,您將收到完全相同的錯誤。

什麼導致最終你的問題是,你必須使用這兩個類在同一個表中,列string添加對象b着想,使用c的情況下,不填充。