2012-02-09 77 views
0

當我嘗試保存我的Person對象時,出現'Can not insert NULL value into column ...'錯誤。只要我可以告訴它(在打印出該值後),它就被正確設置,但是它在保存命令上失敗。'無法將NULL值插入到列'中作爲繼承字段

無法插入null的字段是來自另一個類的繼承字段。

這裏是我的模型:

public class BaseDomain 
{ 
    ... 

    @Column(name="LST_UPD_PRG") private String lastUpdateProgram; 
} 

@Entity 
@Table(name="PRSN_INF") 
public class Person extends BaseDomain 
{ 
    ... 

    @Column(name="FRS_NM") private String firstName; 
    @Column(name="LST_NM") private String lastName; 
} 

然後我試圖拯救的人,像這樣」

public static void main(String[] args) 
{ 
    ... 

    Person person = new Person(); 

    person.setFirstName("John"); 
    person.setLastName("Doe"); 
    person.setLastUpdateProgram("BatchJob_01"); 

    personRepository.save(person); 
} 

,然後保存操作引發錯誤:

com.microsoft.sqlserver.jdbc.SQLServerException: Cannot insert the value NULL into column 'LST_UPD_PRG'... 

我最初創建BaseDomain類,因爲數據庫中的每個表都將具有LST_UPD_PRG列。我繼承的方式有什麼問題嗎?

回答

2

我想你在BaseDomain類中缺少@MappedSuperclass註解。添加註釋將有望解決您的問題。

@MappedSuperclass 
public class BaseDomain { 
... 
+0

照顧好了。我很高興也很傷心,它非常簡單! – 2012-02-09 16:59:28

相關問題