Problemas com hibernete criteria

Alo galera sou novo aqui no forum e estou com prolemas, preciso fazer essa quere em hibernete
usando criteria, o prolemas eh que nao sei trabalhar com criteria envolvento + de uma tabela.

select * from cliente c, caixa_postal cx, caucao ca
where c.cliente_id=ca.cliente_id and ca.caixa_postal_id=cx.caixa_postal_id

Estude pela documentação do Hibernate e pelos tutorias do Guj e logo você não terá problemas para fazer essas queries! :smiley:

Flw! :thumbup:

Estou executando o codigo abaixo como teste e da o seguinte erro: not a property path: caixa_postal

String hql="from cliente c, caixa_postal cx, caucao ca where c.cliente_id=ca.cliente_id and ca.caixa_postal_id=cx.caixa_postal_id and cx.numero=432"; Query query = getSession().createSQLQuery(hql) .addEntity("cliente",Cliente.class) .addEntity("caixa_postal",CaixaPostal.class) .addJoin("cliente","caixa_postal"); return query.list();

Repare que você está pensando na forma como faria com SQL e não com HQL. O correto seria algo + ou - como

String hql = "from Cliente c, c.caucao.caixaPostal as cx where cx.numero=432"onde Cliente tem um método getCaucao, e a classe Caucao (q q e isso? :lol: ) tem o getCaixaPostal.

Flw! :thumbup:

a minha class Cliente nao tem um método getCaucao, e a classe Caucao nao tem o getCaixaPostal.
O relacionamento das minhas tabelas esta segundo o esquema abaixo.
Pretendo o nr da caixa postal dum determinado cliente XX.

      [b]    tb1|  cliente_id  |=====>tb2|   cliente_id, caixa_postal_id |=====>tb3| caixa_postal_id     |[/b]

tb1-tabela Cliente
tb2-tabela Caucao
tb3-tabela Caixa_postal

Entenda o seguinte, o importante aqui é a forma como as classes mapeiam as tabelas e seus relacionamentos. Isso estando correto, não é necessário considerar como as tabelas estão relacionadas. Te aconselho a estudar bem os conceitos do Hibernate, sem eles você vai ter constantes impedimentos no seu desenvolvimento.

Flw! :thumbup:

Alo fiz a alteracao e o codigo ficou como esta descrito em baixo, mas continua a dar o seguinte erro: not a property path: caixa_postal

1. String hql = "from Cliente c, c.caucao.caixaPostal as cx where cx.numero=432" Query query = getSession().createSQLQuery(hql) .addEntity("cliente",Cliente.class) .addEntity("caixa_postal",CaixaPostal.class) .addJoin("cliente","caixa_postal"); return query.list();

A hql que mostrei era um exemplo, só colocar ela lá não faria funcionar. Com ela, .addEntity(“caixa_postal”,CaixaPostal.class).addJoin(“cliente”,“caixa_postal”) não é mais necessário.

O meu exemplo era pra te ajudar a entender, não copie e cole sem saber o que está fazendo. Não sei como está a sua estrutura de classes, então pare, leia e entenda o que e como deve ser feito.

Flw! :thumbup: