10

json応答を返すコントローラーをテストしていますが、h2データベースが自動インクリメントIDをリセットしないため、最初のテストは失敗します。フィクスチャを使用したり、オブジェクトを手動で作成したりしても、同じ問題が発生します。

@Before
public void setUp() {
    Fixtures.deleteAllModels();
    Fixtures.loadModels("data.yaml");
}

この問題を解決する方法は?

4

3 に答える 3

22

Play アプリを起動し、この URL でブラウザーを起動します (Play アプリをローカルで実行している場合):

http://localhost:9000/@db

h2 db を入力し、以下のコマンドを入力して実行します。

ALTER TABLE <table_name> ALTER COLUMN <column_name> RESTART WITH 1

プログラムでこれを行いたい場合は、Fixtures.executeSQL()役立つかもしれません

詳細については、http://www.h2database.com/html/grammar.html#alter_table_alterを確認してください。

于 2012-04-09T03:43:01.797 に答える