我从Play 2.5升级到2.7,并且保存表单时遇到问题。当字段更改并且我调用Model.update()时,更改不会保留在数据库中(即使它们在完成更新之前进行调试时显示更改)。
但是当我特别设置它们时,它们确实会持续存在。因此,它必须对未检测到更改并且看不到对象已更改的事实进行处理。我在模型中使用getter和setters,并且所有属性都是私有的。
这是控制器功能(两行用于保留这两个字段)
@Check(UserTask.MANAGER)
public Result updateSceneSet(Http.Request request) {
Messages messages = messagesApi.preferred(request);
Form<StreamingSceneSet> form = formFactory.form(StreamingSceneSet.class).bindFromRequest(request);
if (form.hasErrors()) {
if (form.rawData().get("id") != null && form.rawData().get("id").length() > 0) {
long itemId = Long.parseLong(form.rawData().get("id"));
StreamingSceneSet item = StreamingSceneSet.findById(itemId);
return badRequest(views.html.streaming.editSceneSetView.render(form, item, messages, request));
} else {
return badRequest(views.html.streaming.createSceneSetView.render(form,messages, request));
}
}
// Form is OK, has no errors we can proceed
StreamingSceneSet item = form.get();
item.setName(item.getName());
item.setDescription(item.getDescription());
// Insert or update?
if (item.getId() == null) {
item.insert();
flash("success", messages().at("addedSceneSet", item.getName()));
} else {
item.update();
flash("success", messages().at("updatedSceneSet", item.getName()));
}
return redirect(routes.Streaming.sceneSets());
}
我从Play 2.5升级到2.7,并且保存表单时遇到问题。当字段更改并且我调用Model.update()时,更改不会保留在数据库中(即使它们显示...
似乎是因为当我开始升级时,我有一些旧的类,而我没有getter和setter,并且由于某些问题我输入了: