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?
[quote=thadeurc]Como assim fazer um chegar ateh o outro???
Como está modelado??[/quote]
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
PS.: Depois que eu concluir vou contribuir para o projeto Genoma!
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!
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.