我想对输入的字符串执行搜索操作。无论输入什么用户,都应该在“名字和姓氏”列上进行搜索。

   //pseudo hql query
     Select   E.someproperty ....  from  Entity E    where   upper(E.firstName || '' || E.lastName)  like  upper(+userEntered+'%')  //


在上面的代码中,我合并了两列并在其上进行了搜索。我想要使​​用休眠条件的类似功能。
 我尝试了以下查询,但是没有用

 empCriteria.add(Restrictions.disjunction().add(Restrictions.ilike("firstName",
   userEntered, MatchMode.START)).add(Restrictions.ilike("lastName", userEntered,
MatchMode.START)));


我知道这是公正的还是有条件的..请让我知道有没有办法结合两列并使用条件查询进行搜索

最佳答案

您不能使用Restrictions执行此操作。

我强烈建议在HQL中执行此操作,而不要在Criteria实例中使用SQL限制。如果您开始使用SQL,就有可能破坏可移植性:Hibernate的目的是将这一层抽象掉。

有关更多详细信息,请参见this SO question

10-07 19:28