[RESOLVIDO]Persistência com EclipseLink/MySql - função PASSWORD não é reconhecida

Pessoal,

estou usando o EclipseLink com NB7.2 e MySql. Seguinte, tenho uma tabela de usuários na qual tenho uma coluna ‘SENHA’ que é criptografada com a função PASSWORD do MySql. Só que quando vou validar a senha do usuário, a função do MySql não está sendo reconhecida. Existe outra forma de fazer isso?

  public Usuario validarSenha(String usuario, String senha) {
    Query q = gerenciador.createQuery("SELECT u FROM Usuario u WHERE u.usuario = :usuario AND u.senha = PASSWORD(:senha)");
    q.setParameter("usuario", usuario);    
    q.setParameter("senha", senha);
    Usuario u = (Usuario) q.getSingleResult();
    return u;
  }

Alguém pode ajudar?

JPQL é <> de SQL.

Não existe a função PASSWORD em JPQL, apenas em SQL Nativo do seu banco.

Troque para Native Query e altere o que mais for necessário, aí vai funcionar.

Valeu, obrigado. Ficou assim:

  public int buscarUsuario(String usuario, String senha) {     
    int id_usuario = 0;
    
    try {
      StringBuffer jpql = new StringBuffer();
      jpql.append("SELECT id_usuario FROM tb_usuario ");
      jpql.append("WHERE usuario = '");
      jpql.append(usuario);
      jpql.append("' AND senha = PASSWORD('");
      jpql.append(senha);
      jpql.append("') AND status = 'A'");
    
      Query query = (Query) gerenciador.createNativeQuery(jpql.toString());
      id_usuario = ((Long)query.getSingleResult()).intValue();
    }
    catch (NoResultException e) {
      // javax.persistence.NoResultException: getSingleResult() did not retrieve any entities.
    }
    finally {
      return id_usuario;
    }
  }