0
JPA仕様Executorを使用して、ユーザーのUI入力に基づいてレコードを検索します。 たとえば、入力の1つはLIKE句を使用して列message
で検索する必要があります。現在、私はこのようにそれを行っている:JPA仕様をエスケープするワイルドカード
if (StringUtils.isNotBlank(searchOptions.getSearchString())) {
String likeExpression = String.format("%%%s%%", searchOptions.getSearchString());
specifications = specifications.and(
(root, query, cb) -> cb.like(root.get("message"), likeExpression));
}
問題は、ユーザーの入力が[]
内部%
または一部のテキストのようなワイルドカードが含まれている場合リテラルが、御馳走がワイルドカードとしてであるように、私はそれを検索しません、です。
誰も私にこれを避ける方法を教えてもらえますか?そして、Javaコード内のそのような文字をすべて手動でエスケープする必要なしに、列のリテラルテキストを常に検索してください。
RDBS私はSQL Serverを使用しています。