Hibernate - Como usar o case sensitive?

4 respostas
geidivan

Pessoal,

Estou fazendo um Criteria pra buscar um único registro de acordo com login de usuário e senha. O problema é que ele não está diferenciando letras maiúsculas e minúsculas. Como faço isso?

O meu código está assim:

user = (Usuario) session.createCriteria(Usuario.class)
           .add(Restrictions.eq("login", u.getLogin())
           .add(Restrictions.eq("senha", u.getSenha())
           .uniqueResult();

Tenho um usuário com login ‘G’, mas se eu digito ‘g’ ele é retornado assim mesmo.

4 Respostas

otavio

Restrictions.like - case sensitive like
Restrictions.ilike - case insensitive like

geidivan

Já tentei também, com MatchMode.EXACT ainda e deu a mesma coisa.

otavio

MatchMode é uma coisa, like e ilike é outra.

MatchMode é usado para saber onde ele vai buscar a string via wildcard. No caso like e ilike usa case sensitive e insensitive nesta ordem.

Qual o banco usado?

geidivan

Meu banco é MySQL. O que estava dizendo é que testei do seguinte modo:

.add(Restrictions.like("nome", u.getNome(), MatchMode.EXACT))
                 .add(Restrictions.like("login", u.getLogin(), MatchMode.EXACT))
Criado 6 de fevereiro de 2009
Ultima resposta 6 de fev. de 2009
Respostas 4
Participantes 2