Экранирование специальных символов в запросе JCR SQL2 - PullRequest
0 голосов
/ 05 августа 2020

Я использую запрос JCR SQL2, как показано ниже:

SELECT parent.* FROM [rep:User] AS parent INNER JOIN [nt:unstructured] AS child ON ISCHILDNODE(child,parent) WHERE ISDESCENDANTNODE(parent,'/website/test/users') AND (UPPER(child.[email]) ='firstname_lastname@testemail.com') AND (child.[email] IS NOT NULL)

В этом случае я получаю правильные запросы.

Но как мне избежать апострафа в электронной почте в запросе JCR SQL2 ? Например, если я ищу firstname_last'name@testemail.com, я получаю java .text.ParseException. Как избежать специальных символов в запросе JCR SQL2?

1 Ответ

0 голосов
/ 06 августа 2020

Вы можете использовать одинарную кавычку / апостроф ' как escape-символ. Однако я сомневаюсь, что ваш запрос когда-либо вернет результаты, потому что вы сравниваете значения верхнего регистра в репо со значениями нижнего регистра в вашем запросе.

Добавлен запрос ниже без преобразования в верхний регистр и экранирования апострофа.

SELECT parent.* FROM [rep:User] AS parent INNER JOIN [nt:unstructured] AS child ON ISCHILDNODE(child,parent) WHERE ISDESCENDANTNODE(parent,'/website/test/users') AND (child.[email] ='firstname_last''name@testemail.com') AND (child.[email] IS NOT NULL)
...