我想知道如何在不同的列中搜索相同的参数。
当我做“criteria.add(Restrictions.like(”firstName“,search +”%“));”它可以工作,但只适用于单个列。
那么,我如何使用Criteria使用“OR”?
Criteria criteria = createEntityCriteria();
if (search != null && !search.equals("")) {
criteria.add(Restrictions.like("firstName || lastName || mobileNo || ssn", search + "%"));
System.out.println("search " + search);
}
return (List<Employee>) criteria.list();
像这样用于分离;
criteria.add(Restrictions.disjunction()
.add(Restrictions.like("firstName", search + "%"))
.add(Restrictions.like("lastName", search + "%"))
.add(Restrictions.like("mobileNo", search + "%"))
.add(Restrictions.like("ssn", search + "%")));
限制有一个or
方法,接受任意数量的Criterions,所以你可以这样做:
criteria.add(Restrictions.or(
Restrictions.like("firstName", search + "%"),
Restrictions.like("lastName", search + "%"),
Restrictions.like("mobileNo", search + "%"),
Restrictions.like("ssn", search + "%"))
);