Como buscar informações utilizando criteria hibernate

5 respostas
dahenz

Pessoal, preciso validar um usuário no banco mysql e gostaria de utilizar o criteria do hibernate para isso…

Acontece que, quando eu passo a senha para a restrição do criteria, o retorno é falso, pois, a senha gravada no banco é OLD_PASSWORD.

Como que eu especifico isso no hibernate??? Por meio de anotações???

Obrigado

5 Respostas

celso.martins

Não entendi…

Você não está conseguindo fazer isso?

Criteria criteria = session.createCriteria(Usuario.class);

Criterion username = Restrictions.eq("username", object.getUserName());
criteria.add(username);
		
Criterion password = Restrictions.eq("password", object.getPassoword());
criteria.add(password);

e tratar o

criteria.uniqueResult();

?

Abraços.

root_

celso.martins

O problema está na função do MySQL chamada password(senhadigitada), que criptografa a senha.
Tipo:
Um insert num editor SQL qualquer ficaria assim:

insert into user(usuario, senha)  values('testeUser', PASSWORD('senha'));

Agora… a Verificaçao via SQL é baba também:

SELECT * FROM USER AS U WHERE U.USUARRIO='usuario' and U.SENHA = PASSWORD('senha')

ESSA TAL FUNÇÃO PASSWORD QUE TA ME CAUSANDO PROBLEMAS, POIS VIA CRITERIA EU AINDA NÃO SAQUEI BEM COMO USAR.

R

Eu faria desta forma:

Dá uma pesquisada em “java MD5” nos sites de busca.
Verifique o metodo/processo de criptografia do seu banco de dados.
Então mande a String codificada para o criteria.

root_

Isso eu ja fiz, o banco de dados é o MYSQL… e ro problema ñ é com o MD5, e sim com a tal função que existe no mysql chamada PASSWORD…
Que não é aceita de forma alguma na criteria.

lelodois

root_:
Isso eu ja fiz, o banco de dados é o MYSQL… e ro problema ñ é com o MD5, e sim com a tal função que existe no mysql chamada PASSWORD…
Que não é aceita de forma alguma na criteria.

No sqlServer é colchetes para isolar o campo, assim fica indiferente se já existe uma palavra reservada do banco ou não.
Do mysql eu não sei, mas de qualquer forma recomendo mudar o nome da coluna.

Caso contrário tem q ver na documentação como burlar isto.

http://www.mysql.com/doc/en/Reserved_words.html

abraços

Criado 3 de abril de 2009
Ultima resposta 7 de ago. de 2010
Respostas 5
Participantes 5