我们将 HSQLDB 与 Oracle 数据库语法 (jdbc:hsqldb:mem:TestDB;sql.syntax_ora=true) 一起用于我们的数据层单元测试。
(我们意识到这并不理想,如果我们可以针对实际的 Oracle 数据库进行测试会更好。但这不是一个选项,因为我们希望确保我们可以在任何地方运行我们的自动化测试。在后面的步骤中,所有查询还在实际 Oracle 数据库的集成测试中进行了测试,该数据库的设置类似于生产数据库。)
有什么方法可以支持使用 HSQLDB 进行查询的 Oracle 外连接 (+) 表示法?
在我自己看来,我们不应该使用 (+) 表示法,而是使用标准的外连接表示法。但是,负责调优查询的人使用这种表示法,因此与他们的沟通会变得更加困难/容易出错。虽然如果没有找到解决方案可能是一个选项,但这不是这里的问题。
我找到了以下线程: http : //comments.gmane.org/gmane.comp.java.hsqldb.user/5756 使用那里提到的 QueryRewrite 补丁,我将有必要的钩子来自己处理(+),但是接口从未进入官方 HSQL 版本。
对于 HSQL 是否有另一种解决方法?
我们可以在我们的单元测试本身的某个地方添加查询重写(而不是在测试数据库级别),但如果我们能避免这种情况会更好。
如果 HSQL 没有解决方法,是否有任何其他可从 jar 启动的内存数据库/数据库支持此 (+) 外连接表示法?