我又来这里问关于 Play2.0 的问题 :-)。
我有一个模型叫Task
. 此任务包含一个名为 的字段createdBy
。必须使用登录用户填充此字段。
我的字段声明如下所示:
@ManyToOne
@Constraints.Required
public User createdBy;
我呈现了一个表单,登录用户可以在其中从下拉框中输入描述和优先级。提交表单后,我调用我的save()
方法。在保存方法中,我有以下代码:
Form<Task> taskForm = form(Task.class).bindFromRequest();
if (taskForm.hasErrors()) {
return badRequest(views.html.tasks.taskCreate.render(taskForm));
}
taskForm.get().save();
显然,Task
永远不会保存,因为该字段createdBy
不包含任何(有效)用户。对用户的唯一引用是我保存了他的唯一代码,而不是会话中的主键。
只有当我删除Required约束并将用户后填到保存的任务时,我才能让它工作。必须有更好的方法将表单和用户绑定在一起,对吧?