我正在使用Jquery实现自动完成功能,当我输入名称时,它从数据库中获取记录,存储在db中的记录是资本和数据的混合。小写字母。我编写了一个HQL查询,它以区分大小写的方式获取记录,但我需要记录而不管大小写。这是查询,
List<OrganizationTB> resultList = null;
Query query = session.createQuery("from DataOrganization dataOrg where dataOrg.poolName
like '%"+ poolName +"%'");
resultList = query.list();
例如:如果我有池名,HRMS数据集,Hrms数据,Hr数据等......如果我输入HR或hr,我需要获得所有3条记录,这是我无法做到的。
请帮忙......
答案 0 :(得分:48)
将您的查询更改为
"from DataOrganization dataOrg where lower(dataOrg.poolName)
like lower('%"+ poolName +"%')"
了解更多信息,请查看14.3 doc
答案 1 :(得分:12)
一个好的解决方案是:
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注入