java - 在 h2 中重置自动增量

标签 java playframework h2

我正在测试一个返回 json 响应的 Controller ,但是测试 第一次失败,因为 h2 数据库没有重置 自动递增 ID。 使用夹具或手动创建对象有同样的问题。

@Before
public void setUp() {
    Fixtures.deleteAllModels();
    Fixtures.loadModels("data.yaml");
}

如何解决这个问题?

最佳答案

启动您的 play 应用程序,使用此 url 启动浏览器(如果您在本地运行 play 应用程序):

http://localhost:9000/@db

输入您的 h2 数据库,然后键入以下命令并运行:

ALTER TABLE <table_name> ALTER COLUMN <column_name> RESTART WITH 1

如果您想以编程方式执行此操作,Fixtures.executeSQL() 可能会有用

更多信息,查看http://www.h2database.com/html/grammar.html#alter_table_alter

关于java - 在 h2 中重置自动增量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10065386/

相关文章:

playframework - 为什么从 2.2.1 迁移到 2.3.1 时会出现 Unresolved 依赖关系?

javascript - 用于搜索引擎可抓取应用程序的 EmberJS 技术栈

playframework - 使用 sbt native 打包程序的特定于环境的发行版

java - 如何替换 H2 数据库中的枚举类型?

java - 在 h2 数据库中编写查询以转换日期格式

java - 无法弄清楚如何返回这个递归函数?

java - 如何解决 INKApi 错误

java - 我无法从 wales-latest.osm.pbf 文件中提取 border_type=city

java - 创建一个二维面板数组,每个面板根据之前设计的类绘制自己的形状

java - 使用 hibernate 保留基类和子类