json応答を返すコントローラーをテストしていますが、h2データベースが自動インクリメントIDをリセットしないため、最初のテストは失敗します。フィクスチャを使用したり、オブジェクトを手動で作成したりしても、同じ問題が発生します。
@Before
public void setUp() {
Fixtures.deleteAllModels();
Fixtures.loadModels("data.yaml");
}
この問題を解決する方法は?
json応答を返すコントローラーをテストしていますが、h2データベースが自動インクリメントIDをリセットしないため、最初のテストは失敗します。フィクスチャを使用したり、オブジェクトを手動で作成したりしても、同じ問題が発生します。
@Before
public void setUp() {
Fixtures.deleteAllModels();
Fixtures.loadModels("data.yaml");
}
この問題を解決する方法は?
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を確認してください。