Carregar objeto Lazy [RESOLVIDO]

Galera tenho um objeto com um atributo mapeado como LAZY

mas em um determinado momento preciso traze-lo

como faço isso?

Jovem,

Você pode inicializar o objeto desejado atraves do Hibernate.initialize

Exemplo:


Criteria criteria = Criteria criteria = getManager().createCriteria(Pessoa.class);
List<Pessoa> listaPessoa = criteria.list();

for(Pessoa pessoa : listaPessoa){
  Hibernate.initialize(pessoa.getEndereco());
}

Abs,

Se o mapeamento estiver certo basta dar um get() normal no atributo. A única diferença para um mapeamento eagger é que você precisa ter a Session em que você trouxe o atributo aberta no momento do get()

Jovem,
Creio que a sua definição está equivocada sobre o Eager. Se informar Eager no mapeamento os objetos sempre serão carregados, e dependendo da situação estará consumindo recurdo so banco de dados sem necessidade.

Abs,

Jovem,
Creio que a sua definição está equivocada sobre o Eager. Se informar Eager no mapeamento os objetos sempre serão carregados, e dependendo da situação estará consumindo recurdo so banco de dados sem necessidade.

Abs,[/quote]

Concordo com vc, n entrei nesse mérito de “o porque usar eager ou lazy” porque a pergunta dele era só “como pegar um objeto lazy”, mas de qualquer forma se no momento da recuperação você fizer um initialize você vai consumir recursos igualmente.
Não quis focar nos recursos, mas somente em como obter o objeto

Olha só,

tenho uma Classe

que possui um atributo

[code]

@NotNull(message = "O campo 'Departamento' é de preenchimento obrigatório.")
@JoinColumn(name = "departamento_produto", referencedColumnName = "id_departamento", nullable = false)
@ManyToOne(fetch = FetchType.LAZY, optional = false)
private Departamento departamento;[/code]

quando dou um getDepartamento mesmo apos ter sido inicializado o valor que tenho eh

“Departamento_$$_javassist_16”

handler= JavassistLazyInitializer

Jovem,

Não tem segredo em implementar o Hibernate.initialize é só seguir o exemplo que postei.

Mas caso a dificuldade persista post o metodo que faz a consulta desta ORM.

Abs,

Kra, problema resolvido aqui hehe, o problema aqui eh que em um metodo que eu tava chamando aqui de uma clesse minha mesmo eu perdia a minha transação, rsrs

quanto ao Hibernate.initialize

ok funcionou

vlw