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?