Find no Hibernate :(

3 respostas
F

PessoALL,

Tenho uma tabela na com 20 registros. A chave é composta por id_entidade e id_estabelecimento. Dos 20 registros 18 o id_entidade é igual a 2.

Pois fiz um metodo para retornar todos Objetos desta tabela que sejam com idEntidade = 2.

public List getList(String condicao) throws Exception { List list = null; session.clear(); list = session.find(condicao); session.flush(); return list; }

Onde condição ta sendo passado da seguinte maneira.

"from br.com.palmcard.vo.EntidadeEstabelecimento as u where u.idEntidade = '" + idEntidade + "'"

Este metodo me retona a quantidade certa de objetos ( 18 ), mas quando eu faco a iteração na List verifico que ele so me retornou o primeiro registro da tabela onde o IdEstabelecimento = 3. Ou seja ele me retoan 18 Objetos com idEntidade = 2 e idEstabelecimento = 3, ignorando o restante dos registros com idEstabelecimento que vai de 3 a 20.

Posso estar louqueando, mas não vi nada de anormal no meu código.
Quase virei a noite tentando resolver isso :frowning:

Alguma idéia?

]['s

3 Respostas

_fs

Bizarro @.@

Já checou erros de digitação?

Que tal postar os seus .hbm.xml?

F

“LIPE”:
Bizarro @.@

Já checou erros de digitação?

Que tal postar os seus .hbm.xml?

Tb achei. Vou voltar a mexer nisso hoje a noite. Ai eu posto o resultado aqui.

]['s

maxguzenski

cara, trabalho com hibernate a muito tempo, ja tive muitas dores de cabeça… mas agora eu tomo alguns cuidados basicos, e geralmente tudo funciona :slight_smile:

1º)
nunca use ‘"+ variavel + "’ , prefira utilizar o “?”

2º)
O Hibernate faz uso pesado de equals e hascode, nunca esqueca de implementa-los, comparando as chaves da tua classe!!
(acredito profundamente q esse seja o seu problema)

Criado 25 de agosto de 2004
Ultima resposta 27 de ago. de 2004
Respostas 3
Participantes 3