Play Framework任务示例H2错误 - 已修复

时间:2013-08-11 05:36:10

标签: playframework

一直在试用Pla​​y框架并正在完成教程。但是我不断收到一个非常具体的错误 -

[PersistenceException:Query抛出SQLException:表“TASK”未找到; SQL语句:从任务t0选择t0.id c0,t0.label c1 [42102-168]绑定值:[null]查询为:从任务t0选择t0.id c0,t0.label c1]

...相关代码

23   public static List<Task> all() {
24     return find.all();
25   }

阅读论坛我试图停止并重新启动H2数据库但它似乎不起作用。

更新:
我假设Play教程会说在H2中创建一个表,如果需要的话。但作为一名评论者说,我通过控制台检查,表格不存在。我将尝试通过创建表并推导模式来继续前进,但如果我没有遗漏某些内容,则需要更新教程。我不好的假设。

http://www.playframework.com/documentation/2.1.0/JavaTodoList
Apple MacBook Pro Retina 10.7.5,Java 6

更新2:
跑了以下但仍然得到相同的错误

create table task (id varchar(256) primary key, label varchar(256));

我的application.conf

 db.default.driver=org.h2.Driver
 db.default.url="jdbc:h2:mem:play"

 db.default.user=sa
 db.default.password=""
 ...
 ebean.default="models.*"
 evolutionplugin=disabled

更新3:
    感谢那些回复的人。我在application.conf中设置了ebean.default值。 Evolution插件已禁用。刚学习Play / H2似乎我的应用程序(和相关配置)无法访问H2 db。我会启动H2控制台并添加表'TASK'但运行示例应用程序仍然会给出错误(是的我也承诺了db)。我也尝试在没有H2控制台的情况下运行应用程序,但逻辑上不起作用,因为H2 TASK表没有持久化。在这一点上不确定还有什么可以看,但我确信这很明显......我希望。

更新4:已修复
   启用evolution插件有效。这并不是说现在这对我有意义(必须稍微探索一下进化)。简而言之,本教程应告诉人们,为了使Java TODO正常工作,他们需要从play命令行进入h2-console并运行create table,在启动应用程序时启动实例。

   抱歉,此更新需要一些时间。在其他问题搁置后再回到这一点。

1 个答案:

答案 0 :(得分:1)

您尝试使用evolutionplugin = enable更新evolutionplugin = disabled,然后它应该可以正常工作。