Je veux effectuer une recherche pour une chaîne particulière qui commence par un alphabet particulier. Ainsi, par exemple, si l'alphabet de départ est 'A'
den il devrait produire un résultat qui contiendra toutes les chaînes avec l'alphabet 'A'
.
Comment puis-je y parvenir?
Ma requête est comme indiqué ci-dessous
Query qry = session.createQuery("From RegistrationBean as rb where rb."+searchCriteria+" like %?%");
qry.setString(0,searchField);
Modifiez votre requête en ceci:
Query qry = session.createQuery("From RegistrationBean as rb where rb."+searchCriteria+" like ?");
qry.setString(0, "%"+searchField+"%");
Vous pouvez utiliser des critères pour utiliser comme
session = sessionFactory.openSession();
Criteria query = session.createCriteria(Pojo.class);
query.add(Restrictions.like("column", "a", MatchMode.START));
Il vous donnera la liste des chaînes qui commencent par alpha-bate 'a'.
Remplacer par
Query qry = session.createQuery("From RegistrationBean as rb where rb ";
if (searchField != null)
{
qry = qry + " where rb.searchCriteria like :searchField ";
}
if ( searchField!= null)
{
query.setString("searchField","%"+searchField+"%");
}
Par ici
createQuery("from RegistrationBean as rb where rb.:searchCriteria like '%:searchField%'");