Получить все объекты, содержащие определенные буквы, используя выражение критерия? - PullRequest
0 голосов
/ 11 августа 2011

HEllo У меня есть этот сценарий для поиска конкретного пользователя, и в результате должны появиться все пользователи, которые содержат буквы в текстовом поле поиска ex.если я искал a, то результаты - это все пользователи, которые содержат букву 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

1 Ответ

2 голосов
/ 11 августа 2011

Предложение like в HQL / критериях имеет ту же семантику, что и предложение like в SQL.Вам нужно использовать% для обозначения «0, один или несколько символов».

Таким образом, Restrictions.like("userName", "%" + searchName + "%") вернет всех пользователей, имя пользователя которых содержит введенное имя поиска (хотя оно чувствительно к регистру).

Вы также можете использовать Restrictions.like ("username", searchName, MatchMode.ANYWHERE), который сделает это за вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...