Java 没有数据绑定播放框架2.5.3的相应访问器

Java 没有数据绑定播放框架2.5.3的相应访问器,java,data-binding,playframework,playframework-2.3,ebean,Java,Data Binding,Playframework,Playframework 2.3,Ebean,我想将用户数据保存到数据库播放2.5.3版 我得到这个错误: JSR-303验证属性“first_name”没有相应的数据绑定访问器-请检查您的DataBinder的 配置(bean属性与直接字段访问)] 我的模型课 @Entity public class UserRegisterModel extends Model { @Id @GeneratedValue protected Long ID; @Constraints.Required prot

我想将用户数据保存到数据库播放2.5.3版

我得到这个错误:

JSR-303验证属性“first_name”没有相应的数据绑定访问器-请检查您的DataBinder的 配置(bean属性与直接字段访问)]

我的模型课

@Entity
public class UserRegisterModel extends Model
{
    @Id
    @GeneratedValue
    protected Long ID;

    @Constraints.Required
    protected String first_name;
    protected String last_name;
    protected String user_name;

    @Constraints.Required
    protected String password;
    protected String password_confirmation;

    @Constraints.Email
    @Column(unique = true)
    protected String email;
}
public Result submitUserRegistrationForm()
{
    play.data.Form<UserRegisterModel> form = play.data.Form.form(UserRegisterModel.class).bindFromRequest();
    UserRegisterModel register = form.bindFromRequest().get();
}
控制器类

@Entity
public class UserRegisterModel extends Model
{
    @Id
    @GeneratedValue
    protected Long ID;

    @Constraints.Required
    protected String first_name;
    protected String last_name;
    protected String user_name;

    @Constraints.Required
    protected String password;
    protected String password_confirmation;

    @Constraints.Email
    @Column(unique = true)
    protected String email;
}
public Result submitUserRegistrationForm()
{
    play.data.Form<UserRegisterModel> form = play.data.Form.form(UserRegisterModel.class).bindFromRequest();
    UserRegisterModel register = form.bindFromRequest().get();
}
公共结果提交注册表单()
{
play.data.Form Form=play.data.Form.Form(UserRegisterModel.class).bindFromRequest();
UserRegisterModel register=form.bindFromRequest().get();
}
我还想匹配密码和符合密码。我应该在模型或控制器中执行此操作


您能提供一些表单验证的示例代码(模型、控制器)吗?

如评论中所述,您必须添加play enhancer,如下所述:

此外,增强剂仅在以下条件下起作用:

增强器查找Java类上的所有字段:

  • 公开
  • 它们是非静态的
  • 是非最终的
对于这些字段中的每一个,如果它们不存在,它将生成一个getter和setter。如果您希望为一个字段提供一个自定义的getter或setter,这可以通过编写它来实现,如果getter或setter已经存在,则Play enhancer将跳过它的生成


因此,这里有两个选项:保持字段
受保护
,编写自己的getter和setter,或者公开,让增强器生成其他库(如表单绑定)所需的getter和setter。

是否添加get和set?现在不添加。我读到它们是自动生成的。您是否配置了播放增强功能?否,我如何配置它。@PCF,请查看我的答案。