Lazy loading do hibernate trazendo objetos sem informações

6 respostas
David

Tenho uma classe Grupo com um Set de Itens mapeado como lazy. Segue o mapeamento, feito com annotations.

Em Grupo:

@OneToMany(fetch=FetchType.LAZY, mappedBy="grupo")
private Set<Item> itens;

Em Item:

@ManyToOne
@JoinColumn(name="id_grupo")
private Grupo grupo;

Quero listar todos os grupos com os seus respectivos itens, então dou um findAll em Grupo e depois um grupo.getItens(). Algo como:

Collection<Grupo> grupos = dao.findAll(Grupo.class);
for (Grupo grupo : grupos) {
    System.out.println(grupo.getNome());
    for (Item item : grupo.getItens()) {
        System.out.println(item.getNome());
    }
}

Com o primeiro grupo tudo acontece do jeito que deveria acontecer, mas a partir do segundo, o Set de itens vem com o número correto de objetos, mas eles vêm com id = 0 e outros atributos null.

Alguém tem idéia de por que isso pode estar acontecendo? Uso o hibernate 3.2 com hibernate annotations.

6 Respostas

plentz

Chegou a conferir como os dados estão no banco?

David

plentz:
Chegou a conferir como os dados estão no banco?
Conferi sim, estão corretos…

F

Conferiu se a consulta que o Hibernate gera esta certa?

]['s

David

fabgp2001:
Conferiu se a consulta que o Hibernate gera esta certa?
Yep! Se eu executá-la no pgAdmin, por exemplo, o resultado é o esperado.

plentz

[chute] Você implementou equals() e hashCode()? [/chute]

David

Estão sim… :slight_smile:

Criado 10 de novembro de 2006
Ultima resposta 16 de jan. de 2007
Respostas 6
Participantes 3