Не удается сохранить родительский идентификатор при обработке отношения OneToMany - PullRequest
0 голосов
/ 26 октября 2018

Я сталкиваюсь с некоторыми трудностями, поддерживая отношения один-ко-многим в Spring JPA.У нас есть две сущности: родительская и дочерняя.Я определил отношение многие к одному, как это

родительская сущность

@OneToMany(cascade = CascadeType.ALL, mappedBy = parent)
Set<Child> childs;

дочерняя сущность

@ManyToOne
@JoinColumn(name=""parent_id)
private Parent parent;

Ниже приведен код в моей службе для сохранения родителя.

Parent parent = new Parent();
parent.setName("name");
List<Child> children= new ArrayList<>();
Child child1 = new Child();
child1.setAge(10);
children.add(child1);
Child child2 = new Child();
child2.setAge(11);
children.add(child1);
parent.setChilds(children)
parentReposiroty.save(parent);

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

1 Ответ

0 голосов
/ 26 октября 2018

При управлении двунаправленными отношениями вы также должны установить родителя для каждого ребенка при сохранении со стороны родителей.поэтому см. ниже, чтобы обновить ваш код, чтобы установить родительский элемент для ребенка, добавив child1.setParent(parent); и child2.setParent(parent);

Parent parent = new Parent();
parent.setName("name");
List<Child> children= new ArrayList<>();
Child child1 = new Child();
child1.setAge(10);

child1.setParent(parent);

children.add(child1);
Child child2 = new Child();
child2.setAge(11);

child2.setParent(parent);

children.add(child1);
parent.setChilds(children)
parentReposiroty.save(parent);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...