MySQL数据库与JPA重置自动递增值(Resetting auto-increment value

2019-09-17 00:23发布

我刚开始用的JUnit写我的第一个单元测试,我遇到了一个小问题。 在我的单元测试即时插入新的数据到我的MySQL数据库。 之后,我将我的信息,我删除一个单元测试相同的信息。

我的表ID是自动递增,每个单元测试我跑递增1下一个ID值。

我实现了与@AfterClass标注的新方法,使我和我的单元测试完成后,它会重置的增值。 我用这个查询:

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

如果我直接添加新的信息到我的MySQL数据库的下一个ID的价值是不是我希望它(价值在我的表+1最后ID)。

然而,当我直接在数据库中运行SQL查询,查询不工作。

我的问题:是无法运行这些类型的,而单元测试的查询? 还是我完全看这种错误的方式。

我用java,spring,hibernate的,JPA的JUnit

提前致谢!

Answer 1:

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

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


文章来源: Resetting auto-increment value of MySql database with JPA