2012-02-09 3 views
0

사용자 개체를 저장하려고 할 때 '값을 열로 삽입 할 수 없습니다 ...'오류가 발생합니다. 값을 출력 한 후에 알 수있는 한 제대로 설정되어 있지만 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

BaseDomain 클래스에 @MappedSuperclass 주석이 없습니다. 해당 특수 효과를 추가하면 문제가 해결 될 것입니다.

@MappedSuperclass 
public class BaseDomain { 
... 
+0

이렇게 처리했습니다. 나는 너무 행복하고 슬프다. –

관련 문제