Duvida com Hibernate

0 respostas
A

Olá, galera estou com um problema com a inicialização de uma coleção em um objeto.

O contexto é um aluno tem varias turma e uma turma tem varios alunos, isso gera um mapeamento n-m, entre as classes, quando eu pesquiso um aluno, eu quero mostrar as classes que ele esta matricula, mas acontece o seguinte erro:

could not initialize a collection: [beans.Aluno.turmas#111]

Estes são os mapeamentos da classes:

Aluno:
<hibernate-mapping>
	<joined-subclass name="beans.Aluno" extends="beans.Pessoa" 
		table="aluno" >
	
		<key column="id_aluno" />
		
		<property name="matricula" 
			type="java.lang.String" 
			column="matricula" 
			not-null="true" />
		
		<set name="avaliacoes" lazy="true" inverse="true">
			<key column="ID_ALUNO" />
			<one-to-many class="beans.Avaliacao" />
		</set>
		
		<set name="turmas" lazy="true" table="alunoturma" 
			order-by="nome asc">
			<key column="ID_ALUNO" />
			<many-to-many column="ID_TURMA" class="beans.Turma" />
		</set>
		
		<set name="historicoAlunoTurmas" lazy="true">
			<key column="ID_ALUNO" />
			<one-to-many class="beans.HistoricoDisciplinaAluno" />
		</set>
		
	</joined-subclass>
	
		<query name="listaAlunosOrdem">
			<![CDATA[
				from Aluno a order by a.nome asc
					]]>
		</query>
		
		<query name="pesquisaPorNomeAluno">
			<![CDATA[
					from Aluno a where a.nome= :nome
				]]>
		</query>
		
		<query name="pesquisaParteNomeAluno">
			<![CDATA[
					from Aluno a where a.nome like :parteNome order by a.nome asc
			]]>
		</query>		
		
		<query name="pesquisaPorMatriculaAluno">
			<![CDATA[
					from Aluno a where a.matricula= :matricula
			]]>
		</query>
		
</hibernate-mapping>

Turma:

<hibernate-mapping>
	<class name="beans.Turma" table="turma">
	
		<id name="id_turma" type="int" column="id_turma" >
			<generator class="increment" />
		</id>
		
		<property name="nome" 
			type="java.lang.String" 
			column="nome" 
			not-null="true" />
			
		<property name="periodo" 
			type="java.lang.String" 
			column="periodo" 
			not-null="true" />
		
		<set name="alunos" lazy="true" table="alunoturma">
			<key column="ID_TURMA" />
			<many-to-many column="ID_ALUNO" class="beans.Aluno" />
		</set>
		
		<set name="historicoTurmaAlunos" lazy="true" inverse="true">
			<key column="ID_TURMA" />
			<one-to-many class="beans.HistoricoDisciplinaAluno" />
		</set>
		
		<set name="horarios" lazy="true" table="horariosTurmas">
			<key column="ID_TURMA" />
			<element type="java.lang.String" column="horario" />
		</set>
		
		<many-to-one name="id_Professor"  class="beans.Professor" column="ID_PROFESSOR"
			update="true" insert="true" cascade="none" />
			
		<many-to-one name="id_Disciplina"  class="beans.Disciplina" column="ID_DISCIPLINA" 
			update="true" insert="true" cascade="none" />
			
	</class>
	
	<query name="listarTurmas">
		<![CDATA[
			from Turma t order by t.nome asc
		]]>
	</query>
						
	<query name="pesquisaTurmaNome">
		<![CDATA[
			from Turma t 
				where t.nome = :nome
				]]>
	</query>
		
</hibernate-mapping>
Alguem sabe como resolver esse problema?
Criado 8 de outubro de 2006
Respostas 0
Participantes 1