【发布时间】:2020-05-23 11:55:04
【问题描述】:
我在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) 行时,孩子被添加到监护人列表中,但没有在表中创建新记录。如何解决?提交对象关系的更改?
【问题讨论】:
-
您永远不会保存更改
-
块
else正在工作。并且新记录添加到 Guardian_child 表中 -
我不明白这怎么可能?
-
如果没有
childService.createChild(child);的代码,我不确定您希望如何回答。我猜是因为 childService 救了孩子??
标签: java spring spring-boot jpa spring-data