1

我正在尝试为连接到 MS SQL Server 的 Java 代码库编写单元/集成测试用例。在这项工作中,我能够成功地将我的所有 SQL Server 表复制到 H2 数据库文件并在 H2 数据库上运行我的单元测试。

我已经彻底审查了 H2 DB兼容性功能。

  1. 在我的 JDBC URL 上,我设置了模式 - jdbc:h2:~/test;MODE=MSSQLServer
  2. 尝试连接到 H2DB 文件并执行

    设置模式 MSSQLServer

  3. 我在内存和文件模式下都尝试过这个,但两者都不能在兼容模式下工作。

这两个似乎都不起作用。我的应用程序 SQL 包含 NOLOCK 提示和带方括号的标识符。兼容性文档中引用了这两个支持。我什至查看了 H2DB 的 github 以了解他们的 MS SQL Server单元测试,并发现这些是受支持的。

仍然想知道我可能遗漏的任何东西。

4

1 回答 1

1

最后发现我使用的是旧版本“h2-1.4.197”,其中未启用 MS SQL Server 兼容性。

因此升级到版本“h2-1.4.200”,一旦我们处于 SQL Server 模式,就会忽略像 (NOLOCK) 这样的提示。方括号仍然没有被忽略 - 但至少猜测兼容模式正在工作。所以就留在这里吧。

于 2020-05-04T04:01:53.560 回答