最近、キーワードを使用してMYSQLクエリを変更しましたRLIKE
が、データベースをモックするためにHSQLDBを使用する単体テストを実行すると、不明なSQLトークン例外がスローされます。
これを解決するために、現在これらのテストをコメントアウトしていますが、実際にコードをテストできるように回避策を見つけたいと思います。
HSQLDBのドキュメントが不足しているように見えるため、私のgoogle-fuは解決策になりませんでした。助けていただければ幸いです。
最近、キーワードを使用してMYSQLクエリを変更しましたRLIKE
が、データベースをモックするためにHSQLDBを使用する単体テストを実行すると、不明なSQLトークン例外がスローされます。
これを解決するために、現在これらのテストをコメントアウトしていますが、実際にコードをテストできるように回避策を見つけたいと思います。
HSQLDBのドキュメントが不足しているように見えるため、私のgoogle-fuは解決策になりませんでした。助けていただければ幸いです。
この話の教訓は次のとおりです。デプロイする予定のソフトウェアスタックと同じソフトウェアスタックを使用してテストを実行します。
別の環境でテストする場合、テストは成功する可能性がありますが、アプリは本番環境で失敗します-これは悪いことです。
RLIKE
は非標準の演算子であり、HSQLはそれをサポートしていません。HSQLでテストを続行する場合は、LIKEステートメントまたはその他の標準的な方法を使用してクエリを書き直す必要があります。または、 dbunitなどを使用してデータベースの相互作用をモックすることもできます。
HSQLDB2.0で同等のものは関数です
REGEXP_MATCHES(、)
使用法は
SELECT ... WHERE REGEXP_MATCHES(mystring、regexpr)
最新のHibernate3.5.5はHSLQDB2.0をサポートします