Hibernate - Como recuperar um objeto e seus relacionamentos?

1 resposta
A

Amigos, meu problema é simples. Já tenho ele há tempos, e sempre resolvi de forma não muito convencional, mas gostaria finalmente de entender essa funcionalidade do Hibernate.

Tenho uma classe Grupo e uma classe Convidado, onde muitos Convidados estão associados a um único grupo.

Eu gostaria de recuperar um objeto Grupo e que, dentro dele, viesse uma coleção de Convidados.

[size=9]Classe Grupo (omitindo métodos de acesso)[/size]

@Entity
@Table(name="GRUPO")
public class Grupo {

	@Id @GeneratedValue(strategy=GenerationType.AUTO)
	@Column(name = "NOME_GRUPO")
	private String nomeGrupo;
	
        @OneToMany(mappedBy="grupo")
        @JoinColumn(name="GRUPO")
	private Collection<Convidado> listaConvidados;

Acontece, que quando minha classe DAO tenta recuperar o objeto Grupo ela popula no campo listaConvidados uma coleção de objetos do tipo PersistentBag. Coisa do Hibernate, que eu nunca entendi. Eu queria que essa fosse uma coleção de objetos Convidado, conforme estou tentando fazer nas Annotations.

Alguém entende esse problema e sabe como eu posso buscar o objeto da maneira correta (com as referÊncias corretas) ?

[size=9]Meu método de busca na classe DAO está assim … [/size]

StringBuffer strBuffer = new StringBuffer();
			strBuffer.append(" FROM Grupo grupo WHERE grupo.nomeGrupo = :nomeGrupo    ");

			Query query = session.createQuery(strBuffer.toString());
			query.setString("nomeGrupo", pId);

			List objetos = query.list();
			if (!objetos.isEmpty()) {				
				return (Grupo)objetos.get(0);
			} else {
				throw new Exception();
			}

Obrigado

1 Resposta

C

Pq não pode ser um PersistentBag ? 0_o

Criado 30 de julho de 2009
Ultima resposta 30 de jul. de 2009
Respostas 1
Participantes 2