HEllo我有这个场景来搜索特定用户,应该出现的结果是包含搜索文本字段ex中字母的所有用户。如果我搜索了一个结果,则所有用户都包含字母a
我使用这种方法:
public List<User> search(String searchName) {
session=sessionFactory.getCurrentSession();
@SuppressWarnings("unchecked")
List<User> users=session.createCriteria(User.class).
add(Restrictions.like("username", searchName)).list();
return users;
}
但结果是未定义的,除非我将“完全”匹配用于用户名示例 如果我搜索结果是没有用户存在但是如果我搜索了raouf然后检索了raouf
答案 0 :(得分:2)
HQL / criteria的like
子句与SQL的like
子句具有相同的语义。您需要使用%来表示“0,一个或多个字符”。
因此Restrictions.like("userName", "%" + searchName + "%")
将返回其userName包含输入的搜索名称的所有用户(但它区分大小写)。
你也可以使用Restrictions.like(“username”,searchName,MatchMode.ANYWHERE)来为你做这件事。