_fs
Abril 7, 2008, 11:45am
#1
Considere o seguinte modelo simplificado:
[code]
class Pessoa {
public List< Telefone > telefones;
}
class Telefone {
public String numero;
}[/code]
Ao fazer isso;
Pessoa p = ( Pessoa ) session.get( Pessoa.class, 1 );
Se “telefones” for declarado EAGER a lista de telefones é carregada automaticamente ao fazer o “get” de Pessoa.
Se “telefones” for declarado LAZY, a lista de telefones só será carregada (implicando mais um select no banco) se ela for acessada.
Contanto que a session ainda esteja aberta, o uso fica transparente:
É executado normalmente em ambos os casos. Mas com o LAZY o select no banco ocorre no momento em que acessar a coleção.
jayro
Junho 8, 2010, 4:49pm
#2
[quote=Filipe Sabella]Considere o seguinte modelo simplificado:
[code]
class Pessoa {
public List< Telefone > telefones;
}
class Telefone {
public String numero;
}[/code]
Ao fazer isso;
Pessoa p = ( Pessoa ) session.get( Pessoa.class, 1 );
Se “telefones” for declarado EAGER a lista de telefones é carregada automaticamente ao fazer o “get” de Pessoa.
Se “telefones” for declarado LAZY, a lista de telefones só será carregada (implicando mais um select no banco) se ela for acessada.
Contanto que a session ainda esteja aberta, o uso fica transparente:
É executado normalmente em ambos os casos. Mas com o LAZY o select no banco ocorre no momento em que acessar a coleção.[/quote]
Show de bola !
obrigado pelas explicações
estou mapeando minhas classes no Hibernate e gostaria de saber quais as diferenças entre LAZY e EAGER. to conseguindo resultado com as duas opcoes, mas não sei o que isso implica. Se alguem puder me esclarecer isso desde de ja agradeço.
valeu pela resposta Filipe, realmente esclarecedor :).