1

一直在尝试 Play 框架并正在阅读教程。但是我不断收到一个非常具体的错误-

[PersistenceException:查询抛出 SQLException:找不到表“TASK”;SQL 语句:select t0.id c0, t0.label c1 from task t0 [42102-168] 绑定值:[null] 查询为:select t0.id c0, t0.label c1 from task t0 ]

...相关代码

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

阅读论坛我尝试停止并重新启动 H2 db,但它似乎不起作用。

更新:
如果需要,我假设 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));

我的应用程序.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 数据库。我会启动 H2 控制台并添加表“TASK”,但运行示例应用程序仍然会出现错误(是的,我也致力于 db)。我也尝试在没有 H2 控制台的情况下运行该应用程序,但这在逻辑上不起作用,因为 H2 TASK 表没有持久化。目前还不确定还有什么要查看的,但我确信这很明显......我希望。

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

抱歉,这次更新花了一些时间。在其他问题发生后才回到这个问题。

4

1 回答 1

1

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

于 2014-01-07T11:13:40.273 回答