2012-02-09 85 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

相关问题