如何使用 Criteria Restriction.like、Hibernate 和 Spring 来改变参数?
How can I different parameters using Criteria Restriction.like, Hibernate and Spring?
我想知道如何在不同的列中搜索相同的参数。
当我执行 "criteria.add(Restrictions.like("firstName", search + "%"));"它有效,但仅适用于单个列。
那么,我如何使用标准来使用 "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 + "%")));
- 析取 --> 将表达式组合在一个析取中(A 或 B 或 C...)
- 连词 --> 将表达式组合在一个连词中(A and B and C...)
Restrictions 有一个 or
方法可以接受任意数量的条件,所以你可以这样做:
criteria.add(Restrictions.or(
Restrictions.like("firstName", search + "%"),
Restrictions.like("lastName", search + "%"),
Restrictions.like("mobileNo", search + "%"),
Restrictions.like("ssn", search + "%"))
);
我想知道如何在不同的列中搜索相同的参数。
当我执行 "criteria.add(Restrictions.like("firstName", search + "%"));"它有效,但仅适用于单个列。
那么,我如何使用标准来使用 "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 + "%")));
- 析取 --> 将表达式组合在一个析取中(A 或 B 或 C...)
- 连词 --> 将表达式组合在一个连词中(A and B and C...)
Restrictions 有一个 or
方法可以接受任意数量的条件,所以你可以这样做:
criteria.add(Restrictions.or(
Restrictions.like("firstName", search + "%"),
Restrictions.like("lastName", search + "%"),
Restrictions.like("mobileNo", search + "%"),
Restrictions.like("ssn", search + "%"))
);