gpt4 book ai didi

java - 关于 hibernate 标准的菜鸟问题

转载 作者:行者123 更新时间:2023-12-01 05:51:21 26 4
gpt4 key购买 nike

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

[编辑] 返回值为 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年新年快乐!!

最佳答案

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

其次,一旦你拉出了用户,你只需比较密码哈希,如果可以就让用户通过。

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

关于java - 关于 hibernate 标准的菜鸟问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4580065/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com