Ответ 1
измените свой запрос на
"from DataOrganization dataOrg where lower(dataOrg.poolName)
like lower('%"+ poolName +"%')"
для получения дополнительной информации смотрите 14.3 doc
Я использую функцию автозаполнения с помощью 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 записи, которые я не могу.
Пожалуйста, помогите...
измените свой запрос на
"from DataOrganization dataOrg where lower(dataOrg.poolName)
like lower('%"+ poolName +"%')"
для получения дополнительной информации смотрите 14.3 doc
Хорошее решение:
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-инъекций