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 データベースを停止して再起動しようとしましたが、うまくいかないようです。

更新:
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:
進化プラグインの有効化が機能する問題を修正しました。これは今のところ私には意味がありません (進化を少し探る必要があります)。要するに、このチュートリアルでは、Java TODO を機能させるには、play コマンドラインから h2-console に移動し、create table を実行し、アプリの起動時にインスタンスを起動する必要があることを説明する必要があります。

申し訳ありませんが、この更新には時間がかかりました。他の問題が発生した後、これに戻りました。

4

1 に答える 1

1

こんにちは、evolutionplugin=disabled を evolutionplugin=enable で更新してみてください。

于 2014-01-07T11:13:40.273 に答える