Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否可以从某个固定装置开始以一定数量加载数据库ID?_Java_Unit Testing_Playframework_Fixtures - Fatal编程技术网

Java 是否可以从某个固定装置开始以一定数量加载数据库ID?

Java 是否可以从某个固定装置开始以一定数量加载数据库ID?,java,unit-testing,playframework,fixtures,Java,Unit Testing,Playframework,Fixtures,我正在使用用于Java的Play Framework 2.2.1。我想让我的装置,为我的单元测试,让所有的表开始他们的id计数超过200 原因是: 谷歌搜索它提供了一系列“最佳实践”文章,其中没有一篇包括这个选项 所以我想知道这是否可能 编辑:澄清一下,这只适用于单元测试,不适用于工作环境。单元测试通过夹具加载。每个测试都可以有一个不同的fixture,这意味着数据库将永远被删除,这意味着在加载fixture时,必须对数据库中的每个表执行该测试 Play框架使用ebean作为抽象层。Play使用

我正在使用用于Java的Play Framework 2.2.1。我想让我的装置,为我的单元测试,让所有的表开始他们的id计数超过200

原因是:

谷歌搜索它提供了一系列“最佳实践”文章,其中没有一篇包括这个选项

所以我想知道这是否可能

编辑:澄清一下,这只适用于单元测试,不适用于工作环境。单元测试通过夹具加载。每个测试都可以有一个不同的fixture,这意味着数据库将永远被删除,这意味着在加载fixture时,必须对数据库中的每个表执行该测试

Play框架使用ebean作为抽象层。Play使用H2数据库在内存中进行单元测试

编辑:我最终通过与H2的常规连接修复了它。Ebeean似乎不支持这一点。

是的(至少对于大多数dbms而言)。 此sql语句适用于MySQL:
altertable AUTO_INCREMENT=200


这一个适用于H2:
altertable ALTER COLUMN RESTART WITH 1

您只希望在测试数据库中出现这种行为,而不希望在实际数据库中出现这种行为?您如何在测试中加载数据?@Salem Fixtures。Play允许您为每个测试方法加载夹具。这一切都是通过ebean实现的。好的,这可以从命令行修改数据库。但我使用的是游戏框架及其固定装置。我需要这些装置中定义的数据具有我定义的自动增量开始的id号。所以我插入的第一个项目应该有id,例如,200。如何确保在第一次插入之前生成和更改表?