У меня есть метод в Controller
:
@RequestMapping(value = "/children", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
public void createChild(@RequestBody CreateChildRequestDTO childDTO) {
Long guardianId = Long.parseLong(childDTO.getGuardianId());
Child child = childDTO.getChild();
Guardian guardian = guardianService.findById(guardianId).get();
boolean isExist = childService.isExist(child.getChildFullName(),
child.getPassword(),
child.getPhoneNumber());
if (isExist) {
child = childService.findChildByNameAndPass(child.getChildFullName(), child.getPassword());
guardian.addChild(child);
}
else {
guardian.addChild(child);
childService.createChild(child);
}
}
А также я создал отношение многие ко многим в Guradian
классе:
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name = "guardian_child", schema = "cheer",
joinColumns = @JoinColumn(name = "guardianid"),
inverseJoinColumns = @JoinColumn(name = "childid"))
private List<Child> children = new ArrayList<>();
Когда я запустить код и выполнить строку guardian.addChild(child)
дочерний элемент добавлен в список опекунов, но не создал новую запись в таблице. Как это исправить? Зафиксировать изменение в отношении объектов?