Boa tarde Galera.

Eu estou com algumas duvidas ainda sobre o bom é velho problema de Lazy
Loading. Mas se acalmen não criemos panico hehehe..
Eu consegui resolver o problema de Lazy em parte em um pequeno projeto de
testes aqui. Mas acho(tenho quase certeza na verdade que não foi a melhor
solução).

Vou descrever como eu fiz.

Faço as minhas criteria utilizando Projections. Assim busco só os campos das
classes que não são listas, ou outro objetos que não sejam tipos do Java.Vou
colocar um pequeno exemplo aqui.

Tenho a Classe Empresa e dentro de Empresa tenho um List<Usuario>
Ai para evitar o problema de Lazy busco só os dados da empresa


*         Criteria c = super.session.createCriteria(Empresa.class,
"empresa");

        ProjectionList projectionList =
Projections.projectionList().create();
        projectionList.add(Projections.property("empresa.cod"),"cod");
        projectionList.add(Projections.property("empresa.razao"),"razao");
        projectionList.add(Projections.property("empresa.etc"),"etc");
        c.setProjection(projectionList);*


Mas isso me tras sérios problemas se eu precisar fazer um
*c.add(Restrictions.eq("empresa.cod",
cod));* Ao invés do hibernate utilizar isso na clausula Where ele usa um
alias que ele criou para a consulta no *SELECT* ai digamos ele colocaria
algo + ou - assim* where _y0 = 1* ai é lógica o banco não executa o SQL pois
ele não conheçe o camo *y0.*

Bem esse é um dos problemas mais ainda é facil solucionado pois dai monta as
clausulas where e manto elsa com o *Restrictions.sqlRestrictions*.

Mas o problema mesmo é se eu precisar da lsita de USUARIOS para mandar para
o FLEX junto com a EMPRESA. Vou ter que fazer uma nova consulta no banco
buscando só os dados do usuário. Até ai Blza Porém se eu tenho um
*List<Empresa>
*e dentro de cada *Empresa  *eu tenho um *List<Usuario>* eu tenho que fazer
o for para varrer o list de empresa e buscar todos os usuários relacionados
aquela empresa. e setalos no list.

Eu acho que isso ta completamente errado. Mas não consegui pensar em nenhuma
outra solução para isto se alguém puder compartilhar experiencia sobre isso
ficarei muito grato.

Ou Se puderem dizer se usam mais *HQL ou Criteria.  *

Desculpa pelo extenso texto. Mas essa questão ja vem me encomodando a uns 6
meses. E eu sempre procurando solução para isso mais sem muito sucesso.

Obrigado pela Atenção de todos.


-- 
Fabiano Frizzo

Conheça  o Projeto ACBr - Automação Comercial Brasil http://acbr.sf.net
Conheça  o Projeto JACBr - Java Automação Comercial Brasil
http://sourceforge.net/projects/jacbr

--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para 
flexdev-unsubscr...@googlegroups.com
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---

Responder a