【问题标题】:Resetting auto-increment value of MySql database with JPA使用 JPA 重置 MySql 数据库的自动增量值
【发布时间】:2012-05-03 13:50:11
【问题描述】:

我刚开始使用 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

提前致谢!

【问题讨论】:

    标签: java mysql spring jpa junit


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-08
      • 1970-01-01
      • 1970-01-01
      • 2016-02-05
      • 1970-01-01
      • 2011-02-18
      相关资源
      最近更新 更多