web-dev-qa-db-fra.com

Comment écrire une requête similaire dans HQL

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);
15
Ni3

Modifiez votre requête en ceci:

Query qry = session.createQuery("From RegistrationBean as rb where rb."+searchCriteria+"  like ?");
qry.setString(0, "%"+searchField+"%");
24
Aleksandr M

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'.

13
MayurB

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+"%");
}
7
rinuthomaz

Par ici

createQuery("from RegistrationBean as rb where rb.:searchCriteria like '%:searchField%'"); 
6
Roman C