«Невозможно вставить значение NULL в столбец» для унаследованного поля - PullRequest
0 голосов
/ 09 февраля 2012

При попытке сохранить мой объект Person появляется ошибка «Невозможно вставить значение 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. Что-то не так с тем, как я делаю наследство?

1 Ответ

2 голосов
/ 09 февраля 2012

Я думаю, что вам не хватает аннотации @MappedSuperclass для класса BaseDomain.Надеемся, что добавление этой аннотации решит вашу проблему.

@MappedSuperclass
public class BaseDomain {
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...