JPA Отношение «один ко многим»: «родительский ключ не может быть пустым» - PullRequest
0 голосов
/ 13 марта 2019

JPA Отношение «один ко многим»: «родительский ключ не может быть пустым»

Родитель - Реестр

@OneToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE})
@JoinColumn(name = "registry_id", nullable = false , insertable = true)
@PrivateOwned
public List<ContactData> getContactDataList() {
    return contactDataList;
}

ребенок - ContactData

    @Column(name = "registry_id", length = 20)
public BigInteger getRegistryId() {
    return registryId;
}
public void setRegistryId(BigInteger registryId) {
    this.registryId = registryId;
}

ошибка при сохранении дочернего элемента, при которой родительский идентификатор не может быть пустым

Невозможно изменить сторону дБ

1 Ответ

0 голосов
/ 13 марта 2019

Проблема родительский ключ не может быть пустым показывает, потому что вы сохраняете данные дочерней / зависимой таблицы без ссылки на родительскую / основную таблицу.

Решение

  1. Получить родительскую ссылку. Вы должны загрузить родительскую запись из таблицы Registry . Если не существует, то создайте запись Registry .
  2. Создание дочерней ссылки ( ContactData ) объекта
  3. Добавить родительскую ссылку Реестр в дочернюю ContactData запись. Здесь не только родительский идентификатор добавляет к дочернему элементу, но также добавляет ссылку на родительский объект.
  4. Сохранить дочерний объект

Надеюсь, это решит вашу проблему.

Спасибо:)

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