Подтвердить что ты не робот

HQL как оператор для поиска без учета регистра

Я использую функцию автозаполнения с помощью JQuery, когда я набираю имя, он извлекает запись из db. Записи, хранящиеся в db, представляют собой смесь капитала и маленьких букв. Я написал запрос HQL, который извлекает мне записи с учетом регистра, но мне нужно записывать независимо от случая. Вот запрос,

List<OrganizationTB> resultList = null;
Query query = session.createQuery("from DataOrganization dataOrg where dataOrg.poolName   
like '%"+ poolName +"%'");
resultList =  query.list();    

Ex: Если у меня есть имена пулов, набор данных HRMS, данные Hrms Data, Hr и т.д.... если я нахожу HR или hr, мне нужно получить все 3 записи, которые я не могу.

Пожалуйста, помогите...

4b9b3361

Ответ 1

измените свой запрос на

"from DataOrganization dataOrg where lower(dataOrg.poolName)   
like lower('%"+ poolName +"%')"

для получения дополнительной информации смотрите 14.3 doc

Ответ 2

Хорошее решение:

List<OrganizationTB> resultList = null;
Query query = session.createQuery("from DataOrganization dataOrg where lower(dataOrg.poolName) like :poolName");
query.setParameter("poolName", '%'+poolName.toLowerCase()+'%');
resultList =  query.list();

Итак, вы защищаете свой код от SQL-инъекций