2012-02-09 28 views
0

私のPersonオブジェクトを保存しようとすると、 'NULL値を列に挿入できません'というエラーが発生します。それは私が(値を印刷した後に)伝えることができる限り正しく設定されていますが、saveコマンドでは失敗しています。'継承されたフィールドの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'... 

データベースの各テーブルにLST_UPD_PRG列があるため、最初はBaseDomainクラスを作成しました。私が継承している方法に何か問題がありますか?

答えて

2

@MappedSuperclassアノテーションがBaseDomainクラスにないと思います。その注釈を追加することで、問題を解決できます。

@MappedSuperclass 
public class BaseDomain { 
... 
+0

それが処理しました。私はとても幸せで悲しいです。とてもシンプルでした! –

関連する問題