Hibernate - não inicializa as coleções de objetos

2 respostas
D

Estou com um problema estranho no hibernate, tenho um objeto que possui uma propriedade que é uma coleção de outros objetos. Ex: Pai possui vários filhos…

Mapeei os filhos por <list> na classe pai
Ao recuperar a instancia do Pai o hibernate exibe os dois selects no console para recuperar os dois filhos, mas quando executo o pai.getFilhos() a coleção vem sempre vazia…

E se eu criar uma coleção e colocar em pai.setFilhos() ele exibe a query de delete de todos os filhos desse pai e os inserts para os filhos q colocar.

Conclusão, o hibernate nao recupera os filhos, mas os insere corretamente.

2 Respostas

spycall

Se vc estiver usando lazy=true

tente antes de fechar a sessao inicializar as collections que vc quer usar:

Ex:

HibernateSessionFactory.initializeCollection(pai.getFilhos());
D

[quote=spycall]Se vc estiver usando lazy=true

tente antes de fechar a sessao inicializar as collections que vc quer usar:

Ex:

HibernateSessionFactory.initializeCollection(pai.getFilhos());

O lazy está false, e o ideal não seria utilizar este initializeCollection para deixar o restante do código independente do hibernate. Possuo outra classe no mesmo esquema e recupera normalmente, a diferença é que a que funciona possui apenas uma chave primaria na classa pai, e a q nao recupera possui chave composta, incluindo a filha.

Criado 7 de junho de 2006
Ultima resposta 7 de jun. de 2006
Respostas 2
Participantes 2