我有一个简短的问题:
上次保存有效(上次保存将更新)。
但是“首次保存”无法正常工作。
我无法通过这种方式插入,怎么可能?
@GetMapping(value = "/delete/{id}")
public String delete(@PathVariable BigInteger id, Model model) {
try {
Group group = groupService.findById(id);
group.setId(null);
group.isLog(true);
// This Save will be Insert Data
groupService.save(group);
group = groupService.findById(id);
group.isLog(true);
//This Save will be Update Data
groupService.save(group);
return "redirect:/accountsGroup/";
} catch (Exception ex) {
return "masters/accountsInfo/groups/index";
}
}
答案 0 :(得分:0)
您不能仅将ID设置为null。
该实体处于托管状态,并且不会因为将ID设置为null而成为新实体。
正确的方法是在新实例中克隆实体状态。
您还可以尝试分离实体(EntityManager.detach),然后将ID设置为null。也许它将插入新行。但是正如我所说,这不是您应该这样做的方式。
在此处详细了解实体状态:https://vladmihalcea.com/a-beginners-guide-to-jpa-hibernate-entity-state-transitions/