Playframework 在重头戏2.3.3中,实体必须已设置?

Playframework 在重头戏2.3.3中,实体必须已设置?,playframework,playframework-2.3,Playframework,Playframework 2.3,在重头戏2.1.1中,entity Login.java: public class Login { @NotBlank(message = "login account cannot be empty") public String mobile; @NotBlank(message = "login password cannot be empty") public String password; public Integer ownInnId;

在重头戏2.1.1中,entity Login.java:

public class Login {
    @NotBlank(message = "login account cannot be empty")
    public String mobile;
    @NotBlank(message = "login password cannot be empty")
    public String password;
    public Integer ownInnId;
    public InnAdmin admin;
    public String token;
}
但在游戏2.3.3中,有错误的帖子:

play.api.Application$$anon$1:执行异常[[IllegalStateException:JSR-30] 3已验证属性“密码”没有相应的数据访问器 绑定-检查DataBinder的配置(bean属性与direct fie) [ld access] 在play.api.Application$class.handleError(Application.scala:296)~[play_ 2.11-2.3.3.罐子:2.3.3] play.api.DefaultApplication.handleError(Application.scala:402)[play_ 2.11-2.3.3.罐子:2.3.3] 在play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$3$$anonfun $applyOrElse$4.apply(PlayDefaultUpstreamHandler.scala:320)[play_2.11-2.3.3.jar: 2.3.3] 在play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$3$$anonfun $applyOrElse$4.apply(PlayDefaultUpstreamHandler.scala:320)[play_2.11-2.3.3.jar: 2.3.3] 在scala.Option.map(Option.scala:145)[scala-library-2.11.2.jar:na] 原因:java.lang.IllegalStateException:JSR-303已验证属性的密码 '没有相应的数据绑定访问器-请检查您的DataInde r的配置(bean属性与直接字段访问) 在play.data.Form.bind(Form.java:349)~[play-java_2.11-2.3.3.jar:2.3.3] 在play.data.Form.bindFromRequest(Form.java:221)~[play-java_2.11-2.3.3。 jar:2.3.3] 在controllers.Application.spLogin(Application.java:295)~[classes/:na] 在Routes$$anonfun$Routes$1$$anonfun$applyOrElse$132$$anonfun$apply$132。 应用(routes\u routing.scala:3309)~[classes/:na] 在Routes$$anonfun$Routes$1$$anonfun$applyOrElse$132$$anonfun$apply$132。 应用(routes\u routing.scala:3309)~[classes/:na] 原因:org.springframework.beans.NotReadablePropertyException:无效属性 bean类[bean.vo.Login]:bean属性“password”未重新设置 adable或具有无效的getter方法:getter的返回类型是否匹配 setter的参数类型? 位于org.springframework.beans.BeanWrapperImpl.getPropertyValue(beanwrape java:725)~[spring-beans-4.0.3.RELEASE.jar:4.0.3.RELEASE] 位于org.springframework.beans.BeanWrapperImpl.getPropertyValue(beanwrape java:716)~[spring-beans-4.0.3.RELEASE.jar:4.0.3.RELEASE] 位于org.springframework.validation.AbstractPropertyBindingResult.getActua lFieldValue(AbstractPropertyBindingResult.java:99)~[spring-context-4.0.3.RELEAS E.jar:4.0.3.RELEASE] 位于org.springframework.validation.AbstractBindingResult.rejectValue ractBindingResult.java:108)~[spring-context-4.0.3.RELEASE.jar:4.0.3.RELEASE] 在play.data.Form.bind(Form.java:343)~[play-java_2.11-2.3.3.jar:2.3.3] [错误]应用程序-播放OneError…POST/spLogin执行异常[[IllegalS] tateException:JSR-303验证的属性“密码”没有对应的I ng数据绑定访问器-检查DataBinder的配置(bean属性 rty与直接现场访问)]]

在重头戏2.3.3中,如果您的问题是:

在重头戏2.3.3中,当使用Ebean时,模型的每个属性都必须有getter和setter吗


答案是否定的。拥有公共字段就足以让ebean工作。

你不需要getter和setter,拥有公共字段就足够了


您的问题在于注释:您应该使用
@Required

Play不会强制您定义getter/setter。您可以声明并使用它们,也可以直接访问公共字段

在后台,Ebean仍将在编译后创建getter/setter,因此您将无法在代码中使用它们

关于错误,请尝试清理项目,然后重新编译:

$ play clean-all
$ play compile

Play Framework版本为2.3.8

  activator clean
  activator clean-files

这个错误与Ebean无关。这是Spring数据绑定。我现在面临着同样的问题,但还不能解决它。