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

HSQLDB2.0で同等のものは関数です

REGEXP_MATCHES(、)

使用法は

SELECT ... WHERE REGEXP_MATCHES(mystring、regexpr)

最新のHibernate3.5.5はHSLQDB2.0をサポートします

于 2010-08-24T23:15:26.533 に答える