db2 查询语法错误,如何 运行 使用 h2 进行单元测试
db2 query bad grammar, how to run unit test with h2
这里有两部分问题,考虑以下 db2 查询:
select col1!!col2 from table1
- 我从未见过双感叹号 (
!!
) 运算符。从它的结果 returns 来看,它似乎是在对 col1 和 col2 进行简单的串联。我在 db2 文档中在线查看,但未能找到定义。有人可以验证一下吗?
- 不允许我更改查询以使用不同的语法,我希望能够运行使用内存数据库中的 h2 对该查询和其他具有一些 db2 的查询进行单元测试怪癖。我如何使用 junit4 实现此目的?
我最终解决这个问题的方式可能有点难看,但这是我在我所拥有的范围内所能做到的最好的:
- 不能将 docker 容器用于实际 db2 数据库的测试实例
- 不能直接修改源文件中定义的查询
在我的单元测试中,我做了以下事情:
- 在 returned 原始查询
的服务方法上设置间谍 beans
- 在 spy bean 上创建了
when
条件,这样就可以代替 return 查询我知道行不通的查询(根据示例,使用 !!
、^<
, 等), when
条件将 return 等同于 具有 h2 兼容语法的查询 (||
, >=
, 等等)
- 使用修改后的查询查询 h2 数据库
希望这对某人有所帮助。
这里有两部分问题,考虑以下 db2 查询:
select col1!!col2 from table1
- 我从未见过双感叹号 (
!!
) 运算符。从它的结果 returns 来看,它似乎是在对 col1 和 col2 进行简单的串联。我在 db2 文档中在线查看,但未能找到定义。有人可以验证一下吗? - 不允许我更改查询以使用不同的语法,我希望能够运行使用内存数据库中的 h2 对该查询和其他具有一些 db2 的查询进行单元测试怪癖。我如何使用 junit4 实现此目的?
我最终解决这个问题的方式可能有点难看,但这是我在我所拥有的范围内所能做到的最好的:
- 不能将 docker 容器用于实际 db2 数据库的测试实例
- 不能直接修改源文件中定义的查询
在我的单元测试中,我做了以下事情:
- 在 returned 原始查询 的服务方法上设置间谍 beans
- 在 spy bean 上创建了
when
条件,这样就可以代替 return 查询我知道行不通的查询(根据示例,使用!!
、^<
, 等),when
条件将 return 等同于 具有 h2 兼容语法的查询 (||
,>=
, 等等) - 使用修改后的查询查询 h2 数据库
希望这对某人有所帮助。