2012-05-03 40 views
2

JUnitで最初の単体テストを書き始めましたが、少し問題がありました。 私のユニットテストの中で私はMySqlデータベースに新しいデータを挿入しています。情報を追加した後、次の単体テストで同じ情報を削除します。JPAでMySqlデータベースの自動インクリメント値をリセットする

マイテーブルIDは自動インクリメントであり、各ユニットテストで私は@AfterClassアノテーションを使用して新しい方法を実現1.

でインクリメントされ、次のIDの値を実行I「が後になるように私のユニットテストでは増分値がリセットされます。私は私のMySQLデータベースに直接新しい情報を追加する場合は次のIDの値が、私はそれが(私の表1の最後のid値)であることを望むものではありません

entityManager.createNativeQuery("ALTER TABLE student AUTO_INCREMENT = 1"); 

:私はこのクエリを使用していました。

しかし、データベースで直接SQLクエリを実行すると、クエリが機能します。

私の質問:ユニットテスト中にこれらの種類のクエリを実行することはできませんか?あるいは、私はこれを間違った方法で完全に見ています。

私は、java、春、休止状態、JPA、JUnitを事前に

感謝を使用しています!

答えて

3

クエリを作成し、それを実行するのを忘れ:

entityManager 
    .createNativeQuery("ALTER TABLE student AUTO_INCREMENT = 1") 
    .executeUpdate(); 
+0

すっごいを..私は答えてくれてありがとう...愚かな感じ! –

関連する問題