2016-08-21 1 views
0

J'ai des données étudiant à la base de données. et avoir un champ appelé 'nom', comment faire une requête conditionnelle ignorer cas? j'ai données id = 1, name = john je vais obtenir des données de requête dans veille prolongée si je fais une recherche ignorer champ de nom de cas, voici mon code:hql - comment sélectionner une requête conditionnelle en hibernation

List list = sessionFactory.getCurrentSession() 
       .createQuery("from Student where name = :param") 
       .setParameter("param", value) 
       .list(); 

si la saisie iam John ou John ou John ou JOhn ou etc j'obtiendrai des données de ma base de données. comment le résoudre?

+0

La réponse est fournie ce que vous cherchiez? Si oui, veuillez marquer la réponse comme la bonne solution. sinon je peux vous fournir une solution "ilike". – DanielK

Répondre

0

Utilisez minuscules dans les deux côtés:

List list = sessionFactory.getCurrentSession() 
       .createQuery("from Student where lower(name) = :param") 
       .setParameter("param", value.toLowerCase()) 
       .list();