Circular Reference

3 respostas
D

Estou fazendo o seguinte mapeamento usando Hibernate com annotations.

Todos os mapeamentos estão funcionando, exceto a do aluno. Esta ocorrendo um erro de referencia circular:

log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version).
log4j:WARN Please initialize the log4j system properly.
Initial SessionFactory creation failed.org.hibernate.AnnotationException: Foreign key circularity dependency involving the following tables: Usuario, Fisica, Aluno
Exception in thread "main" java.lang.ExceptionInInitializerError
	at br.com.sistema.util.HibernateUtill.<clinit>(HibernateUtill.java:16)
	at br.com.sistema.model.dao.HibernateDAO.getBean(HibernateDAO.java:45)
	at br.com.sistema.testes.RecebimentoTeste.main(RecebimentoTeste.java:37)
Caused by: org.hibernate.AnnotationException: Foreign key circularity dependency involving the following tables: Usuario, Fisica, Aluno
	at org.hibernate.cfg.AnnotationConfiguration.processFkSecondPassInOrder(AnnotationConfiguration.java:470)
	at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:304)
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1286)
	at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)
	at br.com.sistema.util.HibernateUtill.<clinit>(HibernateUtill.java:13)
	... 2 more
Java Result: 1
CONSTRUÍDO COM SUCESSO (tempo total: 1 segundo)

O mapeamento de aluno está identico ao de professor. Alguem sabe o que pode estar ocorrendo?

3 Respostas

moacirjava

Você pode postar o mapeamento do aluno e do professor?

D

Mapeamento Professor:

package br.com.sistema.model.bean;

import javax.persistence.*;

@Entity
@PrimaryKeyJoinColumn(name = "id")
public class Professor extends Usuario {

    private String formacao;

    public String getFormacao() {
        return formacao;
    }

    public void setFormacao(String formacao) {
        this.formacao = formacao;
    }
}

Mapeamento Aluno:

package br.com.sistema.model.bean;

import javax.persistence.*;

@Entity
@PrimaryKeyJoinColumn(name = "id")
public class Aluno extends Usuario {

    private String local_ocupacao;
    private String ocupacao;
    private String responsavel;

    public String getLocal_ocupacao() {
        return local_ocupacao;
    }

    public void setLocal_ocupacao(String local_ocupacao) {
        this.local_ocupacao = local_ocupacao;
    }

    public String getOcupacao() {
        return ocupacao;
    }

    public void setOcupacao(String ocupacao) {
        this.ocupacao = ocupacao;
    }

    public String getResponsavel() {
        return responsavel;
    }

    public void setResponsavel(String responsavel) {
        this.responsavel = responsavel;
    }
}
D

Alguem sabe o porque deste problema?

Criado 19 de julho de 2011
Ultima resposta 21 de jul. de 2011
Respostas 3
Participantes 2