Pessoal,
Estou com um problema na hora de fazer uma restrição na minha query.
Já tentei com Restriction.eq, Restrition.ilike e Restriction.like e não consigo fazer com que a minha query me retorne apenas um valor, se eu tiver valores parecidos cadastrados no BD me dá erro, estou precisando disso para validar meu login, já tentei de tudo e vi no log do mysql q sempre ele coloca o percent(%) no final, com isso vindo todos os com o login parecido.
Meu metodo esta assim:
public boolean ValidarLogin(String login, String senha) {
Criteria c = session.createCriteria(Usuario.class);
//c.add(Restrictions.ilike("login", login)).add(Restrictions.ilike("senha", senha));
Criterion _login = Restrictions.eq("login", login);
c.add(_login);
Criterion _senha = Restrictions.eq("senha", senha);
c.add(_senha);
return c.uniqueResult() != null;
}
Eu coloco eq, like e ilike e sempre a query que é mostrado no log do MySQL é essa:
select this_.codigo as codigo0_0_, this_.login as login0_0_, this_.nome as nome0_0_, this_.senha as senha0_0_, this_.tipo_usuario_codigo as tipo5_0_0_ from catalogo.usuario this_ where lower(this_.login) like 'jefferson%'
Sempre esta sendo colocado o percent no final do login. Ja fiz teste e o problema eh no metodo, ja coloquei o login na mão como teste e continua o mesmo erro.
Alguem sabe o que pode ser?