嵌入式数据库和多个目录

时间:2017-04-12 10:10:19

标签: java database h2 hsqldb

我想为我的存储库创建集成测试。生产数据库是Sybase,它由多个目录组成,其中有多个模式。

在我的代码中,我使用多个查询我在不同的目录中选择数据:例如:

select * 
from catalog_a.schema_a.table_1 aa1, catalog_b.schema_a.table_2 ba2
where aa1.c1 = ba2.c2

因此,对于测试,我想创建嵌入式数据库,如H2,HSQLDB或其他不同的东西。我试图找到一些可以让我用多个目录模拟prod db的东西,但我无法使它工作。请建议并提出解决方案。

我在java / spring中编写应用程序。这里的另一个技巧是我的应用程序只创建一个DataSource到数据库。

1 个答案:

答案 0 :(得分:0)

HSQLDB仅支持单个目录,并且在查询中指定目录时会检查名称。您可以将目录名称从默认PUBLIC更改为其他名称。例如:

ALTER CATALOG public RENAME TO to catalog_a

但不支持使用两个不同的目录名称。

如果两个目录中的模式或表名不同,则可以修改HSQLDB的源代码,并在方法org.hsqldb.ParserDQL.checkValidCatalogName(String name)

中禁用测试的目录名称检查