| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/07/2010 14:02:19
|
erickfm8
GUJ Master
Membro desde: 06/10/2009 19:29:12
Mensagens: 1396
Offline
|
Ola pessoal tudo bem?
Surgiu a necessidade de mudar Eager para Lazy, apos sua declaração.
Ex: e declaro a lista lazy, mais quando vou fazer um select, eu digo que quero fazer encima do Eager.
Mais ou menos isso,
Alguem ja teve está necessidade?
Deste ja Agradeço.
|
Bacharel em Sistema de Informação
SCJP - Sun Certified Java Programmer
OCWCD - Oracle Certified Web Component Developer (Estudando..) |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/07/2010 14:10:15
|
Felagund
GUJ Master
![[Avatar]](/images/avatar/d8d855c465198499868fb2b566ebee8d.jpg)
Membro desde: 26/07/2006 11:51:36
Mensagens: 1732
Localização: Santa e Bela Catarina
Offline
|
WTF?
Não entendi nada...
|
att
Rafael Felix
Rolling With Code
Twitter |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/07/2010 14:18:32
|
erickfm8
GUJ Master
Membro desde: 06/10/2009 19:29:12
Mensagens: 1396
Offline
|
class Funcionario -
LAZY
List< Telefone > telefones;
class Telefone
LAZY - Quando carregado do banco os funcionarios, será carregado so os funcionarios sem o telefone certo?
EAGER - Sera carregado os funcionarios com os telefones correto?
Supondo que eu ultilizei o Lazy. os telefones não foram carregado,
imagine que eu vou mostrar esses funcionarios em uma Grid com seus respectivos Telefone, isso ira ficar mais lento que se eu usasse o EAGER, porque ele temque ficar fazendo outro select no banco para buscar os telefones.
Chegamos ao ponto chave, existe alguma maneira de eu falar para o JPA,, que somente neste momento eu quero que ele faz a busca por inteira "EAGER
Deu para intender Felagund ?
Obrigado
This message was edited 1 time. Last update was at 06/07/2010 14:51:57
|
Bacharel em Sistema de Informação
SCJP - Sun Certified Java Programmer
OCWCD - Oracle Certified Web Component Developer (Estudando..) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/07/2010 15:46:17
|
pintofree
Virtual Machine Man
![[Avatar]](/images/avatar/e0652a0045dbc0b14d016619158789ce.jpg)
Membro desde: 19/12/2007 12:44:42
Mensagens: 651
Localização: Cuiabá - MT
Offline
|
Deixa eu ver se entendi, em um select vc quer apenas os funcionarios, em outro vc quer os funcionarios e telefones correto?
bem eu nunca vi uma forma de fazer isso. Ja pensei em duplicar as classes de mapeamento das entidades para ter 2 tipos de relacionamento diferentes, mais da erro.
A dica que posso te dar e verificar se vc deixar EAGER vai realmente pesar muito seu banco, se é algo realmente impraticavel pois na maioria das vezes a diferenca e imperceptivel, e eu recomendaria deixar EAGER mesmo.
Caso seja pesado mesmo, tem q permacener LAZY, qnd a demora no momento do seu usuario carregar os dados, se ela realmente existir pois pelo que vi vc esta supondo isso, ela vai acontecer da mesma forma independente de EAGER ou LAZY
|
SCJP - Sun Certified Java Programmer
SCWCD - Sun Certified Web Component Developer, Enterprise Edition 5
"When the compiler's not happy, ain't nobody happy."
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/07/2010 16:19:53
|
erickfm8
GUJ Master
Membro desde: 06/10/2009 19:29:12
Mensagens: 1396
Offline
|
Então porque no Hibernate da pra fazer isto
List pessoas = session.createCriteria(Usuario.class).setFetchMode("grupo", FetchType.EAGER).list();
Gostaria de fazer no TopLink JPA2
|
Bacharel em Sistema de Informação
SCJP - Sun Certified Java Programmer
OCWCD - Oracle Certified Web Component Developer (Estudando..) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/07/2010 16:27:35
|
Felagund
GUJ Master
![[Avatar]](/images/avatar/d8d855c465198499868fb2b566ebee8d.jpg)
Membro desde: 26/07/2006 11:51:36
Mensagens: 1732
Localização: Santa e Bela Catarina
Offline
|
erickfm8 wrote:class Funcionario -
LAZY
List< Telefone > telefones;
class Telefone
LAZY - Quando carregado do banco os funcionarios, será carregado so os funcionarios sem o telefone certo?
EAGER - Sera carregado os funcionarios com os telefones correto?
Supondo que eu ultilizei o Lazy. os telefones não foram carregado,
imagine que eu vou mostrar esses funcionarios em uma Grid com seus respectivos Telefone, isso ira ficar mais lento que se eu usasse o EAGER, porque ele temque ficar fazendo outro select no banco para buscar os telefones.
Chegamos ao ponto chave, existe alguma maneira de eu falar para o JPA,, que somente neste momento eu quero que ele faz a busca por inteira "EAGER
Deu para intender Felagund ?
Obrigado
Sim, agora entendi, vc pode sim carregar um objeto lazy, não sei que framework vc ta trabalhando mas no hql vc pode usar o join fetch para forçar carregar nessa parte, ou chamar um metodo da collection, como por exemplo o size(), vai forçar o select antes de enviar para a view.
|
att
Rafael Felix
Rolling With Code
Twitter |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/07/2010 16:29:55
|
erickfm8
GUJ Master
Membro desde: 06/10/2009 19:29:12
Mensagens: 1396
Offline
|
Então estou ultilizando JPA2 com TopLink somente
vc tem algum exemplo de codigo ?
This message was edited 1 time. Last update was at 06/07/2010 16:34:47
|
Bacharel em Sistema de Informação
SCJP - Sun Certified Java Programmer
OCWCD - Oracle Certified Web Component Developer (Estudando..) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/07/2010 16:50:10
|
Felagund
GUJ Master
![[Avatar]](/images/avatar/d8d855c465198499868fb2b566ebee8d.jpg)
Membro desde: 26/07/2006 11:51:36
Mensagens: 1732
Localização: Santa e Bela Catarina
Offline
|
erickfm8 wrote:Então estou ultilizando JPA2 com TopLink somente
vc tem algum exemplo de codigo ?
Como vc recupera a sua lista?
Usando HQL um exemplo, lembrando que onde eu usar 'em' é uma instancia de EntityManager
Usei LEFT join pois um funcionario pode não ter um telefone cadastrado.
Usando size da collection
Isso deve carregar os seus telefones.
|
att
Rafael Felix
Rolling With Code
Twitter |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/07/2010 16:54:16
|
erickfm8
GUJ Master
Membro desde: 06/10/2009 19:29:12
Mensagens: 1396
Offline
|
okey intendi, muito Obrigado.
abraços
|
Bacharel em Sistema de Informação
SCJP - Sun Certified Java Programmer
OCWCD - Oracle Certified Web Component Developer (Estudando..) |
|
|
 |
|
|