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!
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: