Я имею запрос, как этиСпасаясь специальный символ в спящем запроса на выборку с FTS
Query query = session.createQuery("select object from EntityObject object where lower(object.columnName) like lower (E'%\\(test\\)%')");
и
Query query = session.createQuery("select object from EntityObject object where fts('english',contact.searchColumn,'testing (test)') = true;
Я пытаюсь избежать специальных символов в тексте поиска с обратной косой черты и Я использую postgres 8.3 со стандартным_конформированием_строками в состоянии. С помощью «E» Я получаю сообщение об ошибке, как
unexpected token: '%\(test\)%' near line 1 for the first case
и получать ниже ошибки в следующем случае
ERROR: syntax error in tsquery: "testing (test)"
Пожалуйста, помогите мне решить эту проблему. Мое намерение состоит в том, чтобы избежать специального символа, особенно круглых скобок "()" с обратной косой чертой.
Почему ваш, как пункт, имеющий «E» вне одинарные кавычки? – aksappy
Я попытался сбежать от специального символа, как это указано здесь. Http://www.postgresql.org/docs/current/interactive/runtime-config-compatible.html#GUC-STANDARD-CONFORMING-STRINGS «Синтаксис строки Escape должен быть используется, если приложение желает, чтобы обратная косая черта считалась escape-символами ». – Dhivya
Вы пытались использовать ограничения? – aksappy