Consulta numa unica query? (hibernate)

5 respostas
D

Olá pessoal! estou com um probleminha será que tem alguma forma de fazer com que o hibernate realize uma unica consulta para carregar as informações q solicito?

ex.: Eu tenho Unidade que tem Funcionario Chefe que por sua vez tem cargo.
Quando mando carregar uma unidade por um determinado “id” ele realiza 3 consultas. 1º pega unidade, depois funcionario e por ultimo o cargo desse funcionario…

ai está o problema por questões de performace eu gostaria de fazer uma unica consulta tem como resolver essa bronca?

5 Respostas

_fs

Seu banco suporta outer joins? Se sim, certifique-se que a opção de usá-los está habilitada no arquivo de configuração (veja a documentação).

De qualquer maneira, como você está buscando estes objetos todos?

D

oi lipe! tudo blz??
eu estou utilizando o postgresql. meu mapeamento esta da seguiunte forma:

tenho um mapeamento para a tabela Unidade onde nesse mapeamento tenho um bean funcionario tb mapeado para tabela Funcionario e por ultimo, funcionario tem o meu objeto cargo tb mapeado para tabela cargo!

tem solução ou teria que mudar meu mapeamento eu estou carregando utilizando o metodo “load” da session.

ex.: session.load(“from Unidade where id=1”); acho q o código ta assim!

_fs

Saquei, então você faz algo assim:

// primeiro select
Unidade unidade = ( Unidade ) session.load( "from Unidade where id=1" );

// segundo select
Funcionario funcionario = unidade.getFuncionario(); 

// terceito select
Cargo cargo = funcionario.getCargo();

Esse comportamento é bom quando não se sabe quando serão necessários os objetos do relacionamento. Porém, como no seu caso é necessário, você pode fazer, como descrito na documentação, desta maneira:

Eu sempre prefiro usar a Criteria api do que ficar trabalhando com Strings. Além de ser muito mais claro para montar queries, facilita bastante naqueles casos raros em que é necessário mudar o nome de alguma classe :smiley:

D

valeu lipe! quando chegar em casa vou testar a maneira q vc falou!
desde já agradeço!

Um Abraço!

ricardolecheta

100% apoiado :!:

Criado 1 de março de 2005
Ultima resposta 1 de mar. de 2005
Respostas 5
Participantes 3