java—h2中用于单元测试的现有索引

igsr9ssn  于 2021-06-20  发布在  Mysql
关注(0)|答案(0)|浏览(390)

我有一个在mysql数据库上运行的服务。该服务是用java编写的,使用spring&jpa/hibernate。我们使用h2数据库进行单元测试。问题是,当我们运行测试时,在模式创建阶段,我们会看到以下错误:

Index "USERNAME_INDEX" already exists; SQL statement: create index userName_index on MyTable1 (userName)

问题似乎是我们的域类在不同的表中有相同名称的索引:

MyTable : userName_index on column userName
MyTable1 : userName_index on column userName

因为我们只看到mytable1的错误,所以我们猜测mytable的索引创建成功,而mytable1的索引创建失败。
显然,在h2中,每个模式的索引名必须是唯一的,但是mysql允许索引具有相同的名称,只要它们在不同的表中。
我们不能更改索引名。我还尝试将mysql模式添加到连接url,如下所示:

"jdbc:h2:mem:./MyService;MODE=MySQL;DB_CLOSE_DELAY=-1;"

如何使用当前索引名使单元测试与h2一起工作?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题