大家早上好。
我的控制器具有保存到数据库的方法
@RequestMapping(value = { path+"/new" } , method = RequestMethod.POST)
public String saveLight(@Valid Luce luce, BindingResult result, ModelMap model, final RedirectAttributes redirectAttributes) {
if (result.hasErrors()) {
return path + "/luce";
}
// Add message to flash scope
redirectAttributes.addFlashAttribute("css", "success");
redirectAttributes.addFlashAttribute("msg", "Luce aggiunta correttamente");
luceService.saveLuci(luce);
return "redirect:/"+path+"/"+luce.getIdLuce();
}
getIdLuce()
是模型Luce的吸气剂。当我提交表单时,信息已正确发送到数据库,但由于luce.getIdLuce()
返回0(或null)值,因此我被重定向到/ lights / 0。我没有保存
idLuce
的输入值,这是一个简单的自动增量值@NotNull
@Id
@Column(name="id_luce", unique = true, nullable = false)
public Integer getIdLuce() {
return idLuce;
}
我做错了什么?谢谢
最佳答案
用@GeneratedValue
注释您的实体对象。这样,当您持久化对象时,将设置属性“ idLuce”。
@NotNull
@Id
@GeneratedValue
@Column(name="id_luce", unique = true, nullable = false)
public Integer getIdLuce() {
return idLuce;
}