2017-04-12 44 views
0

我想为我的存储库创建集成测试。生产数据库是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中编写应用程序。这里的另一个窍门是我的应用程序只创建一个数据库到数据库。

回答

0

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

ALTER CATALOG public RENAME TO to catalog_a 

但是,使用两个不同的类别名称不被支持。

如果在这两个目录的模式或表名称是不同的,你可以修改HSQLDB的源代码和禁用方法org.hsqldb.ParserDQL.checkValidCatalogName(String name)

+0

有趣的目录名称检查你的测试...我会尝试。你是否知道类似的事情,但对于H2? – DaRex