Можете ли вы помочь мне найти ошибку в моем JPQL-запросе метода входа в систему в моем приложении, пожалуйста?
// Login
public boolean saveUserState(String email, String password) {
// 1-Send query to database to see if that user exist
Query query = em
.createQuery("SELECT r FROM Role r WHERE r.email=:emailparam r.password=:passwordparam");
query.setParameter("emailparam", email);
query.setParameter("passwordparam", password);
// 2-If the query returns the user(Role) object, store it somewhere in
// the session
Role role = (Role) query.getSingleResult();
if (role != null && role.getEmail().equals(email)
&& role.getPassword().equals(password)) {
FacesContext.getCurrentInstance().getExternalContext()
.getSessionMap().put("userRole", role);
// 3-return true if the user state was saved
return true;
}
// 4-return false otherwise
return false;
}
Я получаю эту ошибку при выполнении:
ТЯЖЕЛАЯ: JSF1073:
javax.faces.event.AbortProcessingException
пойман во время обработки
INVOKE_APPLICATION 5:
UIComponent-ClientID = j_idt13: j_idt17,
Message = / WEB-INF / шаблоны / BasicTemplate.xhtml
@ 61,63
ActionListener = "# {securityController.logIn ()}":
javax.ejb.EJBException SEVERE:
/WEB-INF/templates/BasicTemplate.xhtml
@ 61,63
ActionListener = "# {securityController.logIn ()}":
javax.ejb.EJBException
javax.faces.event.AbortProcessingException:
/WEB-INF/templates/BasicTemplate.xhtml
@ 61,63
ActionListener = "# {securityController.logIn ()}":
javax.ejb.EJBException
.............................. вызвано
от:
java.lang.IllegalArgumentException: An
исключение произошло при создании
запрос в EntityManager: исключение
Описание: синтаксическая ошибка разбора
запрос [ВЫБРАТЬ r ОТ РОЛИ r ГДЕ
r.email =: emailparam,
r.password =: passwordparam], строка 1,
столбец 46: синтаксическая ошибка в [,].
Внутренняя ошибка:
MismatchedTokenException (! 79 = - 1)