Skip to content

Latest commit

 

History

History
24 lines (14 loc) · 1.92 KB

datasource_query_case_insensitive.adoc

File metadata and controls

24 lines (14 loc) · 1.92 KB
Поиск подстроки без учета регистра

В источниках данных можно использовать особенность выполнения JPQL-запросов, описанную для интерфейса Query уровня Middleware: для удобного формирования условия поиска без учета регистра символов и по любой части строки можно использовать префикс (?i). Однако, в связи с тем, что значение параметра обычно передается неявно, имеются следующие отличия:

  • Префикс (?i) нужно указывать не в значении, а перед именем параметра.

  • Значение параметра будет автоматически переведено в нижний регистр.

  • Если в значении параметра отсутствуют символы %, то они будут добавлены в начало и конец.

Для примера рассмотрим обработку следующего запроса:

select c from sales$Customer c where c.name like :(?i)component$customerNameField

В данном случае значение параметра, взятое из компонента customerNameField, будет переведено в нижний регистр и обрамлено символами %, а затем в базе данных будет выполнен SQL запрос с условием вида lower(C.NAME) like ?

Следует иметь в виду, что при таком поиске индекс, созданный в БД по полю NAME, не используется.