Boa noite amigos do GUJ, tudo bom?
Estou tentando mapear um auto-relacionamento (usando Hibernate), mas não está dando certo.
Minha classe está assim:
[code]public class Capitulo {
private Long idCapitulo;
private String titulo;
private Set subCapitulos = new HashSet();
private Capitulo capituloPai;
//aqui vão: contrutor, setters e getters…
}[/code]
O problema é que quando eu tento pegar qualquer objeto do Set “SubCapitulos”, o objeto que obtenho é o proprio objeto capitulo.
Meu mapeamento está assim:
[code]<hibernate-mapping>
<class name=“model.Capitulo” table=“capitulo”>
<id name="idCapitulo"><generator class="native"/></id>
<property name="titulo"/>
<set name="subCapitulos" table="capitulo" lazy="true" cascade="all">
<key column="idCapitulo" foreign-key="FK_idCapituloPai"/>
<one-to-many class="model.Capitulo"/>
</set>
<many-to-one class="model.Capitulo" name="capituloPai" column="capituloPai" foreign-key="FK_idCapituloPai" not-null="false"/>
</class>
</hibernate-mapping>[/code]
Fazendo o seguinte teste:
[pagina_teste.jsp]
[code]Session sessao = HibernateUtil.getSessionFactory().getCurrentSession();
sessao.beginTransaction();
Capitulo capitulo = (Capitulo) sessao.load(Capitulo.class, (long) 1);
Iterator it = capitulo.getSubCapitulos().iterator();
while (it.hasNext()) {
Capitulo subCapitulo = (Capitulo) it.next();
out.print(capitulo.equals(subCapitulo));
}[/code]
O resultado dessa JSP é:
Alguém sabe o que está errado?
Obrigado.
Lucas Catón.
