Caminho entre dois VOs no hibernate

7 respostas
marcelomartins

Pessoal, estou com uma questão aqui, e antes de resolver da maneira mais complicada quero expor aqui no forum.

Eu tenho dois VOs que são mapeados pelo Hibernate, por exemplo Cliente e Estado.

O Hibernate tem alguma método de me dizer qual o caminho eu tenho que seguir pra chegar de um até o outro e fazer o HQL? Imaginamos que isso tudo é em tempo de execução.

Se não, tem alguém já fez algo do tipo? qual o melhor maneira de resolver esse problema?

Obrigado :slight_smile:

7 Respostas

marcelomartins

Bahhh… nenhuma mensagem…

acho que vou ter que fazer do modo mais dificil mesmo :slight_smile:

thadeurc

Como assim fazer um chegar ateh o outro???

Como está modelado??

marcelomartins

thadeurc:
Como assim fazer um chegar ateh o outro???

Como está modelado??

Tenho assim modelado:

Cliente *------- Cidade * ----- Estado

Sendo que Cliente, Cidade e Estado, contem muitos outros relacionamentos.

Eu gostaria que em tempo de execução, receber o Cliente e o Estado como retorno de um HQL, mas pra isso eu preciso por a Cidade junto e fazer tudo num HQL só.

Meu problema é justamente saber, saindo de cliente, como chegar em Estado. Que nesse caso é atravez do relacionamento Cidade.

Mas poderia ser Nota Fiscal e Cliente ou Orcamento e Produto ou na pior das hipóteses, poderia ser Nota Fiscal E Cliente E Estado

:slight_smile:

PS.: Depois que eu concluir vou contribuir para o projeto Genoma!

cv1

Ueh, cliente.getCidade().getEstado() nao funciona?

marcelomartins

Não funciona cv, pelo seguinte

Eu quero ter uma lista com alguns VOs, por exemplo, na lista vai ter Cliente, Nota Fiscal, Produtos, Cidade, Estado, e mais um monte de coisas. Ai eu quero escolher dois deles, e o sistema gerar o HQL pra trazer as informações.

Por isso eu disse, eu tenho Cliente e Estado, preciso saber que é atravez da Cidade que eu chego em estado, mas meu problema é como chegar a essa conclusao em tempo de execução dos sistema.

A solução mais obvia, é eu ter um grafo das classes mapeadas e buscar o caminho entre dois pontos (que podem ser 3, 4 ou 5 pontos), mas esse método é bem trabalhoso, e por isso to postando aqui pra ver se alguma boa alma sabe de alguma outra forma de fazer isso.

Na verdade to perguntando aqui só pra ter certeza que não tem uma maneira mais facil! :slight_smile:

thadeurc

Cara, eu fiz uma coisa parecida para gerar o filtro dinâmico mas sem usar o hibernate (não dava tempode aprnder na época)…

Eu fiz um pool de todas as consultas sql que eu precisava fazer, dai quando uma classe precisava de alguma coisa, ela mandava a chave e fazia um lance de alterações, ou seja, montava uma consulta completa , com todas as opções de filtro e ia “limando” os caras q eu nao quero. Vc pode fazer o contrário tbm, ir adicionando os filtros.

Eu usei um HashMap e no inicio da aplicação eu subia de um arquivo…

Vc pode tbm colocar no hbm.xml as consultas prontas e so trocar os parametros… veja esta thread
http://www.guj.com.br/posts/list/22368.java q tem um exemplo de cod tipo PreparedStatement para hibernate.

Da um bizu

[]´s

maresp

Vc já viu as novas implementações na criteria api do hibernate 3? Mais especificamente o ítem 15.4.

Criado 6 de abril de 2005
Ultima resposta 7 de abr. de 2005
Respostas 7
Participantes 4