Сохранять сущность OneToMany Отношения - PullRequest
0 голосов
/ 03 марта 2020

У меня есть проблема, когда я хочу сохранить 2 объекта в базе данных

В классе запросов:

@ OneToMany (cascade = CascadeType.PERSIST, mappedBy = "request") личных документов списка ;

В классе документа: @JoinColumn (referencedColumnName = "ID_REQUEST") @ManyToOne Запрос запроса

проблема заключается в том, что при добавлении запроса обнаруживается, что объект 2 сохраняется, но в Таблица документа lD_REQUEST ВСЕГДА НУЛЯЕТ

БЛАГОДАРЮ ЗА ПРЕДВАРИТЕЛЬНО и извините за мой английский sh

Ответы [ 2 ]

0 голосов
/ 03 марта 2020

Сохраняя новые данные в базе данных, вы, вероятно, добавили документы в список запроса, но забыли установить объект запроса для всех ваших документов на другой стороне.

Убедитесь, что вы сделали обе вещи ( Ниже приведен пример):

Request request = new Request();
//initialization of request
for (...) { //iterate over all document candidates
    Document document = new Document();
    //initialization of document
    document.setRequest(request); //check this!
    request.getDocuments().add(document);
}

Кроме того, кажется, что у вас нет ограничения на ненулевое значение для столбца ID_REQUEST. Добавьте это, чтобы в будущем у вас не было этих поврежденных данных с полем nullable ID_REQUEST (вместо этого в таких ситуациях возникнет исключение нарушения ограничения).

0 голосов
/ 03 марта 2020

Вам необходимо указать, какой столбец в таблице документов содержит идентификатор запроса:

@JoinColumn(name = "PARENT_REQUEST")

, где PARENT_REQUEST - это имя столбца в таблице документов

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