Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 关于hibernate标准的Noob问题_Java_Hibernate_Criteria - Fatal编程技术网

Java 关于hibernate标准的Noob问题

Java 关于hibernate标准的Noob问题,java,hibernate,criteria,Java,Hibernate,Criteria,我有一个名为User的类,它有两个属性:login/password。我正在尝试使用hibernate标准对应用程序中的用户进行身份验证,但我的请求不起作用 [编辑]返回值为空。我的数据库中有两个用户要测试 这是我的密码: @Override public User authenticate(String login, String password) throws NullPointerException { Session session = this.getSession(

我有一个名为User的类,它有两个属性:login/password。我正在尝试使用hibernate标准对应用程序中的用户进行身份验证,但我的请求不起作用

[编辑]返回值为空。我的数据库中有两个用户要测试

这是我的密码:

@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年新年快乐

您应该首先从数据库中检索用户。如果用户不存在,则在登录页面上显示消息。您的所有登录名都应位于
唯一
列中,因此无需按
uniqueResult
限制

第二,一旦你把用户拉上来,你只需比较密码散列,如果可以,让用户通过

以上内容将简化Hibernate逻辑,从而使代码更容易进行故障排除。
大多数网站都是这样做的。至少就我而言

当你运行代码时,你得到了什么/发生了什么?好吧,我没有看到你给我们看的代码中有任何语法错误。如果删除密码条件,它是否有效?(即仅通过“登录”进行搜索)。是的,我尝试仅通过登录进行搜索,但返回的用户始终为空。我不明白是什么问题。我的映射非常简单:2个属性(带有getter和setter的login/password)。问题可能出在除查询之外的其他地方。确保您的
登录名
密码
与数据库中的值实际匹配,没有编码问题等。那么您是在明文中存储密码吗?