1

我最近使用关键字修改了一个 MYSQL 查询,RLIKE但是当我运行使用 HSQLDB 以模拟数据库的单元测试时,它会抛出一个未知的 SQL 令牌异常。

为了解决这个问题,目前我已经注释掉了这些测试,但想找到一个解决方法,以便我可以实际测试我的代码。

由于 HSQLDB 文档似乎缺乏,我的 google-fu 未能找到解决方案,我们将不胜感激。

4

3 回答 3

2

我认为这个故事的寓意是:使用与您打算部署的相同的软件堆栈运行您的测试。

如果您在不同的环境中进行测试,您的测试可能会通过,但您的应用程序在生产中会失败——这很糟糕。

于 2010-08-21T07:42:23.990 回答
1

RLIKE是非标准运算符,HSQL 不支持。如果您想继续使用 HSQL 进行测试,则必须使用 LIKE 语句或其他一些标准方法重写您的查询。或者,您可以使用例如dbunit模拟数据库交互。

于 2010-08-21T08:48:14.827 回答
0

HSQLDB 2.0 中的等价物是函数

REGEXP_MATCHES ( , )

用法是

SELECT ... WHERE REGEXP_MATCHES(mystring, regexpr)

最新的 Hibernate 3.5.5 支持 HSLQDB 2.0

于 2010-08-24T23:15:26.533 回答