Erro ao listar com Hibernate Anotations

0 respostas
5

Pessoal tenho essas duas classes mapeadas:

package br.com.controlesfazendavitoria.beans;

import javax.persistence.*;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;


@Entity
public class Empresa implements java.io.Serializable {
 
	
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private int id;
    
    @Column(nullable=true,insertable=true,updatable=true)	 
    private String nome;
	 
    @Column(nullable=true,insertable=true,updatable=true)	
    private String telefone;
    
    @Column(nullable=true,insertable=true,updatable=true)	 
    private String celular;
	 
    @Column(nullable=true,insertable=true,updatable=true)	
    private String email;
	 
    @Column(nullable=true,insertable=true,updatable=true)
    private String site;
	 
    @Column(nullable=true,insertable=true,updatable=true)	
    private String cnpj;
	 
    @Column(nullable=true,insertable=true,updatable=true)	
    private String inscricaoEstadual;
	 
    @ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="cidade_id", insertable=true, updatable=true)
    @Fetch(FetchMode.JOIN)
    @Cascade(CascadeType.SAVE_UPDATE)	
    private Cidade cidade;
    
    @ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="logradouro_id", insertable=true, updatable=true)
    @Fetch(FetchMode.JOIN)
    @Cascade(CascadeType.SAVE_UPDATE)	 
    private Logradouro logradouro;
	 
    @ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="bairro_id", insertable=true, updatable=true)
    @Fetch(FetchMode.JOIN)
    @Cascade(CascadeType.SAVE_UPDATE)	
    private Bairro bairro;
	 
    @ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="rua_id", insertable=true, updatable=true)
    @Fetch(FetchMode.JOIN)
    @Cascade(CascadeType.SAVE_UPDATE)
    private Rua rua;
        
    

    public Empresa() {
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getTelefone() {
        return telefone;
    }

    public void setTelefone(String telefone) {
        this.telefone = telefone;
    }

    public String getCelular() {
        return celular;
    }

    public void setCelular(String celular) {
        this.celular = celular;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getSite() {
        return site;
    }

    public void setSite(String site) {
        this.site = site;
    }

    public String getCnpj() {
        return cnpj;
    }

    public void setCnpj(String cnpj) {
        this.cnpj = cnpj;
    }

    public String getInscricaoEstadual() {
        return inscricaoEstadual;
    }

    public void setInscricaoEstadual(String inscricaoEstadual) {
        this.inscricaoEstadual = inscricaoEstadual;
    }

    public Cidade getCidade() {
        return cidade;
    }

    public void setCidade(Cidade cidade) {
        this.cidade = cidade;
    }

    public Logradouro getLogradouro() {
        return logradouro;
    }

    public void setLogradouro(Logradouro logradouro) {
        this.logradouro = logradouro;
    }

    public Bairro getBairro() {
        return bairro;
    }

    public void setBairro(Bairro bairro) {
        this.bairro = bairro;
    }

    public Rua getRua() {
        return rua;
    }

    public void setRua(Rua rua) {
        this.rua = rua;
    }
	 
}
package br.com.controlesfazendavitoria.beans;

import java.util.List;
import javax.persistence.Column;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import org.hibernate.annotations.*;

@Entity
public class Bairro implements java.io.Serializable {
 
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private int id;
    
    @Column(nullable=true,insertable=true, updatable=true)
    private String nome;
    
    @ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="cidade_id", insertable=true, updatable=true)
    @Fetch(FetchMode.JOIN)
    @Cascade(CascadeType.SAVE_UPDATE)
    private Cidade cidade;
	
    @OneToMany(mappedBy="bairro",fetch=FetchType.LAZY)
    @Cascade(CascadeType.ALL)
    private List rua;

    @OneToMany(mappedBy="bairro",fetch=FetchType.LAZY)
    @Cascade(CascadeType.ALL)
    private List empresa;
        
    public Bairro(){
        
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public Cidade getCidade() {
        return cidade;
    }

    public void setCidade(Cidade cidade) {
        this.cidade = cidade;
    }

    public List getRua() {
        return rua;
    }

    public void setRua(List rua) {
        this.rua = rua;
    }

    public List getEmpresa() {
        return empresa;
    }

    public void setEmpresa(List empresa) {
        this.empresa = empresa;
    }
	 
}

E estou usando essa classe para testar:

package br.com.controlesfazendavitoria.beans;

import br.com.controlesfazendavitoria.conexoes.FabricaDeConexoesHibernate;
import javax.swing.JOptionPane;
import org.hibernate.Session;
import org.hibernate.SessionFactory;

/**
 *
 * @author Anderson  L. Ribeiro
 */
public class EmpresaDao {
    
    private Session session;
    
       
    public void listar(){
        session = FabricaDeConexoesHibernate.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        Empresa empresa = (Empresa)session.get(Empresa.class,10);
        session.getTransaction().commit();
        session.close();
        JOptionPane.showMessageDialog(null,empresa.getRua());
    }    
    public static void main(String args[]){
        new EmpresaDao().listar();
        
    }
    

}

Só que está dando o seguinte erro que não consigo encontrar a solução:

init:
deps-jar:
compile-single:
run-single:
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: @OneToOne or @ManyToOne on br.com.controlesfazendavitoria.beans.Empresa.bairro references an unknown entity: br.com.controlesfazendavitoria.beans.Bairro
Exception in thread "main" java.lang.ExceptionInInitializerError
        at br.com.controlesfazendavitoria.conexoes.FabricaDeConexoesHibernate.<clinit>(FabricaDeConexoesHibernate.java:25)
        at br.com.controlesfazendavitoria.beans.EmpresaDao.listar(EmpresaDao.java:30)
        at br.com.controlesfazendavitoria.beans.EmpresaDao.main(EmpresaDao.java:46)
Caused by: org.hibernate.AnnotationException: @OneToOne or @ManyToOne on br.com.controlesfazendavitoria.beans.Empresa.bairro references an unknown entity: br.com.controlesfazendavitoria.beans.Bairro
        at org.hibernate.cfg.ToOneFkSecondPass.doSecondPass(ToOneFkSecondPass.java:81)
        at org.hibernate.cfg.AnnotationConfiguration.processFkSecondPassInOrder(AnnotationConfiguration.java:494)
        at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:299)
        at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1319)
        at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:854)
        at br.com.controlesfazendavitoria.conexoes.FabricaDeConexoesHibernate.<clinit>(FabricaDeConexoesHibernate.java:21)
        ... 2 more
Java Result: 1
CONSTRUÍDO COM SUCESSO (tempo total: 2 segundos)

Alguém poderia me dar uma força?

Criado 26 de outubro de 2008
Respostas 0
Participantes 1