如何在HQL中编写类似的查询

时间:2012-11-26 09:50:05

标签: hibernate hql

我想搜索以特定字母开头的特定字符串。 因此,例如,如果起始字母表为'A' den,则应生成一个结果,该结果将包含字母'A'的所有字符串。

我如何实现这一目标?

我的查询如下所示

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

5 个答案:

答案 0 :(得分:23)

将您的查询更改为:

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

答案 1 :(得分:12)

您可以使用标准来使用

session = sessionFactory.openSession();
Criteria query = session.createCriteria(Pojo.class);
query.add(Restrictions.like("column", "a", MatchMode.START));

它将为您提供以alpha-bate'a'开头的字符串列表。

答案 2 :(得分:6)

更改为

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

答案 3 :(得分:4)

这样

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

答案 4 :(得分:-1)

Query qry = session.createQuery("From RegistrationBean as rb where rb."+searchCriteria+" like :sf");
qry.setString("sf",'%'+searchField+'%');

以上的事情对我有用:)