Help! mapeamento de list no hibernate!

3 respostas
P

E ae pessoal,

To desenvolvendo uma aplicação usando JSF+Hibernate com MySql

No mapeamento das classes, tenho que mapear a seguinte situação:

classe Modulo
classe Atividade
classe SubAtividade

* Cada Modulo possui uma lista de Atividades
* Cada Atividadepossui uma lista de SubAtividades

Aí não to conseguindo mapear essas classes e do jeito que eu fiz as tabelas das classes Atividade e SubAtividade não estão sendo geradas.
Alguém pode me dar uma dica para mapear essas classes?

Os atributos de cada classe são:

public class Modulo
{
	private Integer id;
	private int duracaoModulo;
	private String descObjetivos;
	private String[] topicosAA;
	private List<AtividadeAprendizagem> atividades;
}
public class AtividadeAprendizagem
{
	private Integer id;
	private String tituloAtiv; 
	private String descGeralAtiv;
	private String nomeRefPedagogico;
	private List<SubAtividadeAprendizagem> subAtividades;
}
public class SubAtividadeAprendizagem
{ 
	private Integer id;
	private String tituloSubAtiv;
	private String descSubAtiv;
	private String classificacaoSubAtiv;
	private String duracaoSubAtiv;
	private String[] ferramentaAssociada;
}

E aqui os mapeamentos:

Modulo.hbm.xml
<hibernate-mapping>


    <class name="paco.ufscar.Modulo">
        <id name="id">
		<generator class="increment"/>
	</id>

	<property name="duracaoModulo"/>
	<property name="descObjetivos"/>
	<property name="topicosAA"/>

	<list name="atividades" cascade="all">
		<key column="Modulo_id" not-null="true"/>
		<index column="list_index"/>
		<one-to-many class="paco.ufscar.AtividadeAprendizagem"/>
	</list>

    </class>

</hibernate-mapping>
AtividadeAprendizagem.hbm.xml
<hibernate-mapping>

	<class name="paco.ufscar.AtividadeAprendizagem" table="AtividadeAprendizagem">
        <id name="id">
		<generator class="increment"/>
	</id>
		
    		<property name="tituloAtiv"/>
		<property name="descGeralAtiv"/>
		<property name="nomeRefPedagogico"/>

		<list name="subAtividades" cascade="all">
			<key column="AtividadeAprendizagem_id" not-null="true"/>
			<index column="list_index"/>
			<one-to-many class="paco.ufscar.SubAtividadeAprendizagem"/>
		</list>
	
    </class>

</hibernate-mapping>
SubAtividadeAprendizagem.hbm.xml
<hibernate-mapping>

	<class name="paco.ufscar.SubAtividadeAprendizagem">
        <id name="id">
		<generator class="increment"/>
	</id>

    		<property name="tituloSubAtiv"/>
		<property name="descSubAtiv"/>
		<property name="classificacaoSubAtiv"/>
		<property name="duracaoSubAtiv"/>
		<property name="ferramentaAssociada"/>

    </class>

</hibernate-mapping>

Obrigado

3 Respostas

P

hg

ralphsilver

olá,

Olha… não lembro mais com precisão como qeu faz o mapeamento do hibernate pelo xml (atualmente uso a anotação do JPA, se quiser é só dar um toque) mas vamos lá:

primeiro toda a relação one-to-many de uma classe tem que ter o retorno many-to-one do outro lado assim:

public class Modulo { private Integer id; private int duracaoModulo; private String descObjetivos; private String[] topicosAA; private List<AtividadeAprendizagem> atividades; }

public class AtividadeAprendizagem { private Integer id; private String tituloAtiv; private String descGeralAtiv; private String nomeRefPedagogico; private List<SubAtividadeAprendizagem> subAtividades; private Modulo modulo; }

public class SubAtividadeAprendizagem { private Integer id; private String tituloSubAtiv; private String descSubAtiv; private String classificacaoSubAtiv; private String duracaoSubAtiv; private String[] ferramentaAssociada; private AtividadeAprendizagem atividadeAprendizagem; }

2 - vc tem que fazer a mesma coisa nos html usando a tag … mas aí se eu tiver falando aqui… estaria arriscando… mas em geral… o problema desse mapeamento era só esse.

espero ter ajudado

[]'s

ralphsilver

html não… hehehe hbm.xml

Criado 25 de setembro de 2008
Ultima resposta 30 de set. de 2008
Respostas 3
Participantes 2