2

我刚开始使用 JUnit 编写我的第一个单元测试,但遇到了一个小问题。在我的单元测试中,我将新数据插入到我的 MySql 数据库中。添加信息后,我会在下一个单元测试中删除相同的信息。

我的 table-id 是自动递增的,并且在每个单元测试中,我运行下一个 id 的值都会递增 1。

我使用 @AfterClass 注释实现了一个新方法,以便在我完成单元测试后它会重置增量值。我使用了这个查询:

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

如果我将新信息直接添加到 MySql 数据库中,则下一个 id 的值不是我想要的(表中的最后一个 id 值 +1)。

但是,当我直接在数据库中运行 sql-query 时,查询确实有效。

我的问题:在单元测试时是否不可能运行这些查询?还是我完全看错了。

我正在使用 java、spring、hibernate、jpa、junit

提前致谢!

4

1 回答 1

6

您创建了一个查询,但忘记执行它:

entityManager
    .createNativeQuery("ALTER TABLE student AUTO_INCREMENT = 1")
    .executeUpdate(); 
于 2012-05-03T13:56:57.560 回答