web-dev-qa-db-ja.com

HQLでlikeクエリを作成する方法

特定のアルファベットで始まる特定の文字列を検索したい。たとえば、開始アルファベットが'A' denの場合、アルファベット'A'のすべての文字列を含む結果が生成されます。

どうすればこれを達成できますか?

私のクエリは以下のとおりです

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

クエリをこれに変更します。

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

Likeを使用するための基準を使用できます

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

これは、アルファバイト 'a'で始まる文字列のリストを提供します。

13
MayurB

への変更

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

こちらです

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