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