我想搜索以特定字母开头的特定字符串。
因此,例如,如果起始字母表为'A'
den,则应生成一个结果,该结果将包含字母'A'
的所有字符串。
我如何实现这一目标?
我的查询如下所示
Query qry = session.createQuery("From RegistrationBean as rb where rb."+searchCriteria+" like %?%");
qry.setString(0,searchField);
答案 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+'%');
以上的事情对我有用:)