我有输入用户名和密码来登录我的应用程序的形式。
这是我的疑问:
public LoginUsr logInUsr(RequestLoginUsr request) {
List<User> l = getCurrentSession()
.createQuery("from User where name = :username and pass = :password")
.setParameter("username", request.getUsername())
.setParameter("password", request.getPassword())
.getResultList();
if(l.size() == 1) {
User u = l.get(0);
return new LoginUsr(u.getSurname(),u.getId(),u.getFkUsrPrc(), null);
} else {
return null;
}
}
请求登录用户:
public class RequestLoginUsr {
private String username;
private String password;
private Integer moduleId;
private Integer computerId;
}
它的工作,但...
现在,我将添加输入name
也是来自同一输入上的第二个表"ContactPerson"的email
的可能性。
这是代码,但不是工作:
FROM User as usr JOIN ContactPerson ctp on usr.name = :username
AND usr.pass = :password OR ctp.email = :username
我该怎么做呢?
我需要使用User表中的参数名称或ContactPerson表中的电子邮件登录到我的应用程序。
1条答案
按热度按时间hgncfbus1#
请考虑按以下方式重写查询:
但是我假设在ContactPerson类中有一个对User类的引用(作为多对一或简单的外键属性)