Нуб вопрос о критериях гибернации - PullRequest
1 голос
/ 02 января 2011

У меня есть класс с именем User, который имеет 2 свойства: логин / пароль. Я пытаюсь аутентифицировать пользователя в моем приложении, используя критерии гибернации, но мой запрос не работает.

[EDIT] Возвращаемое значение равно NULL. В моей базе данных для тестирования есть два пользователя.

Вот мой код:

@Override
public User authenticate(String login, String password)
    throws NullPointerException {
    Session session = this.getSession();
    User user = (User) session
        .createCriteria(User.class)
        .add(
                        Restrictions.and(
                            Property.forName("login").eq(login),
                            Property.forName("password").eq(password)
                    )).uniqueResult();

    if (user == null){
        throw new NullPointerException("User not found");
    }

    return user;
}

Может кто-нибудь сказать мне, что не так с моим кодом?

С новым 2011 годом !!

1 Ответ

0 голосов
/ 07 января 2011

Сначала вы должны получить пользователя из базы данных. Если пользователь не существует, покажите сообщение на странице входа. Все ваши логины должны быть в столбце unique, поэтому вам не нужно нажимать ограничение uniqueResult.

Во-вторых, после того, как вы подключили пользователя, вы просто сравниваете хеш пароля и, если все в порядке, позволяют пользователю пройти.

Вышеуказанное упростит вашу логику Hibernate и, следовательно, облегчит поиск и устранение неисправностей вашего кода. Вот как это делают большинство сайтов. По крайней мере, насколько я понимаю.

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