我是 hibernate 新手。 我想用 java 和 hibernate 构建一个简单的身份验证/登录系统。
假设我有一个 User 类
public class User {
private int id;
private String username;
private String passwordHash;
...
}
现在我有一个 DAO 来存储新用户,并获取所有用户(作为列表)。现在我想知道,是否有可能获得没有passwordHash字段的用户列表(出于安全原因)?
如果是配置问题就好了。
另一个想法是将 User 类拆分为
public class User {
private int id;
private String username;
...
}
public class UserWithPassword extends User {
private String passwordHash;
...
}
所以我可以使用 UserWithPassword 将新用户存储到数据库中并使用 User 类用于查询所有用户列表(无密码)。
还有其他建议吗?
最佳答案
您的拆分类将不起作用,因为您必须将类链接到 Hibernate。
您的 DAO 不必返回类本身。您可以编写 HQL 查询,如下所示:
select username
from User
看到了吗?
那么你的 DAO 将有一个类似 public Collection getUserNames() 的方法
关于java - 使用 Hibernate 进行用户身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8008434/