我有一个在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一起工作?
暂无答案!
目前还没有任何答案,快来回答吧!