Hibernate - Problemas na consulta

6 respostas
danbittencourt

estou tendo um problema em uma consulta simples usando o hibernate.

Quando criptografei a senha no cadastro de usuários, um dos caracteres foi o ‘=’… o resultado da criptogtafia foi:

leHdTKJhW6M=

o cadastro foi salvo… tudo certo até aí,…porém quando fui consultar o usuário pra fazer o login, nada de recuperar o usuário, então depois de horas constatei que era por causa do ‘=’

Depois que retirei o caracter no banco de dados (na raça) e na String de consulta passou a funcionar.

E o pior de tudo é que usando a string que o hibernate usou pra fazer a consulta e setando os parametros (que também foi impressos e estão certos) no lugar das '?'s funciona filet(mesmo com o caracter ‘=’ )… ai vai a string de consulta pra ver se ajuda:

Hibernate: select colaborado0_.colaboradorid as colabora1_1567_, colaborado0_.administrador as administ2_1567_, colaborado0_.email as email1567_, colaborado0_.login as login1567_, colaborado0_.nome as nome1567_, colaborado0_.senha as senha1567_, colaborado0_.telefone as telefone1567_ from colaborador colaborado0_ where colaborado0_.login=? and colaborado0_.senha=?

Alguem tem alguma ideia de como solucionar este problema com o caracter ‘=’ de forma não muito grotesca?

esqueci de mencionar: O banco de dados que estou utilizando é Postgres

6 Respostas

ddduran

Tem ctz que o problema é com o caracter “=”?
por que se seu atributo for do tipo String, teoricamente o hibernate vai dar um setString no PS interno dele, então a consulta vai ficar

senha=“blablablabla=” // entre aspas duplas (") ou aspas simples (’)

logo o caracter “=” não mudaria nada

dc.rec1

Qual e a query sendo gerado pelo Hibernate?

danbittencourt

bixo, o mais estranho de tudo é isso… pq eu eu alterei a senha direto no banco (removendo o caracter ‘=’) e tb alterei na String que passo para fazer a comparação… quando fiz isso funcionou!! :shock:
por isso acho q o probelma é com esse caracter

danbittencourt

a query é a seguinte:

select colaborado0_.colaboradorid as colabora1_1567_, colaborado0_.administrador as administ2_1567_, colaborado0_.email as email1567_, colaborado0_.login as login1567_, colaborado0_.nome as nome1567_, colaborado0_.senha as senha1567_, colaborado0_.telefone as telefone1567_ from colaborador colaborado0_ where colaborado0_.login=? and colaborado0_.senha=?
dc.rec1

Mas não tem você num log ou algum lugar a query com os valores substituídos?

Porque como falo ddduran, 0 ‘=’ deveria ficar entre aspas então não deveria existir problema.

danbittencourt

dc.rec1:
Mas não tem você num log ou algum lugar a query com os valores substituídos?

Porque como falo ddduran, 0 ‘=’ deveria ficar entre aspas então não deveria existir problema.

não tenho não! :p… mas substituindo os valores e fazendo a consulta direto no banco dá certo!!

Criado 10 de dezembro de 2007
Ultima resposta 10 de dez. de 2007
Respostas 6
Participantes 3