我在尝试保存Person对象时遇到'无法将NULL值插入列...'错误。据我所知,它被正确设置(打印出值后),但是在save命令中失败了。
无法插入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列。我做遗产的方式有问题吗?
答案 0 :(得分:2)
我认为你错过了BaseDomain类上的@MappedSuperclass注释。添加该注释有望解决您的问题。
@MappedSuperclass
public class BaseDomain {
...