播放框架与谷歌应用引擎模型更新



我有一个部署在Google Appengine上的Play应用程序。我将播放 1.2.4 与模块一起使用:克鲁德西纳 2.0.1盖-1.6安全锡耶纳 2.0.5

我的问题如下:我已经部署了具有多个模型的应用程序,并且该应用程序运行良好。一段时间后,我决定改进应用程序,这需要在模型类中引入新变量。如果我这样做,我的本地主机工作正常,但是当我将新版本上传到 GAE 时,当我尝试访问使用旧版本创建的模型对象时,我收到错误,因为它无法关联新变量:

play.exceptions.JavaExecutionException: siena.SienaException: java.lang.IllegalArgumentException: Can not set boolean field models.Dataset.reportEnabled to java.lang.Integer
at play.mvc.ActionInvoker.invoke(ActionInvoker.java:229)
at play.server.ServletWrapper$ServletInvocation.execute(ServletWrapper.java:540)
at play.Invoker$Invocation.run(Invoker.java:265)
at play.server.ServletWrapper$ServletInvocation.run(ServletWrapper.java:531)
at play.Invoker.invokeInThread(Invoker.java:67)
at play.server.ServletWrapper.service(ServletWrapper.java:130)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

在本例中,布尔值 reportEnabled 变量是新引入数据集类的。我的问题是如何通过保留旧对象来使应用程序工作(可能只是为新变量提供默认值)。

非常感谢

您的帮助。

通过将布尔值更改为布尔值来解决该问题。它没有更改先前条目中数据库的结构,但至少我不再出现错误。

最新更新