J'implémente une fonctionnalité de saisie semi-automatique à l'aide de Jquery, lorsque je tape le nom, il récupère l'enregistrement de la base de données, les enregistrements stockés dans la base de données sont un mélange de majuscules et de minuscules. J'ai écrit une requête HQL qui me récupère les enregistrements en respectant la casse, mais je dois enregistrer indépendamment de la casse. Voici la requête,
List<OrganizationTB> resultList = null;
Query query = session.createQuery("from DataOrganization dataOrg where dataOrg.poolName
like '%"+ poolName +"%'");
resultList = query.list();
Ex: si j'ai des noms de pool, un ensemble de données HRMS, des données Hrms, des données Hr etc ... si je tape HR ou h, j'ai besoin d'obtenir les 3 enregistrements, ce que je ne peux pas.
Veuillez aider ...
changez votre requête en
"from DataOrganization dataOrg where lower(dataOrg.poolName)
like lower('%"+ poolName +"%')"
pour plus d'informations jetez un oeil 14.3 doc
Une bonne solution est:
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();
Ainsi, vous protégez votre code contre l'injection SQL