Для удобного формирования условия поиска без учета регистра символов и по любой части строки можно использовать префикс (?i)
в значении параметра запроса. Например, имеется запрос:
select c from sales$Customer c where c.name like :name
Если в значении параметра name
передать строку (?i)%doe%
, то при наличии в БД записи со значением John Doe
она будет найдена, несмотря на раличие в регистре символа. Это произойдет потому, что ORM выполнит SQL с условием вида lower(C.NAME) like ?
.
Следует иметь в виду, что при таком поиске индекс, созданный в БД по полю NAME
, не используется.