Dúvidas Hibernate
Pessoal Estou começando a aprender Hibernate e estou com o seguinte problema no mapeamento abaixo:
duas entidades usuário e o seu perfil(admin,visitante etc)
1 perfil pode ser atribuído a vários usuário porem 1 usuário so pode ter 1 perfil.
Segue erro:
Initial SessionFactory creation failed.org.hibernate.AnnotationException: @OneToOne or @ManyToOne on br.com.teste.domain.Usuario.perfil references an unknown entity: br.com.teste.domain.Perfil
Exception in thread "main" java.lang.ExceptionInInitializerError
at br.com.teste.util.HibernateUtil.buildSessionFactory(HibernateUtil.java:32)
at br.com.teste.util.HibernateUtil.<clinit>(HibernateUtil.java:12)
at br.com.teste.main.GerarTabela.main(GerarTabela.java:9)
Caused by: org.hibernate.AnnotationException: @OneToOne or @ManyToOne on br.com.teste.domain.Usuario.perfil references an unknown entity: br.com.teste.domain.Perfil
at org.hibernate.cfg.ToOneFkSecondPass.doSecondPass(ToOneFkSecondPass.java:109)
at org.hibernate.cfg.Configuration.processEndOfQueue(Configuration.java:1598)
at org.hibernate.cfg.Configuration.processFkSecondPassInOrder(Configuration.java:1521)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1422)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1846)
at br.com.teste.util.HibernateUtil.buildSessionFactory(HibernateUtil.java:25)
... 2 more
Segue meu codigo:
**********************classeperfil:*********************************************
package br.com.teste.domain;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="Perfil")
public class Perfil {
@Id
@Column (name="per_id",nullable=false)
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
@Column (name="per_descricao" ,length=50,nullable=false)
private String descricao;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
}
*******************************************classe usuario****************************************
package br.com.teste.domain;
import javax.persistence.Column;
import javax.persistence.Entity;
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.Table;
@Entity
@Table(name="Usuario")
public class Usuario {
@Id
@Column (name="us_id")
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
@Column (name="us_nome" ,length=45,nullable=false)
private String nome;
@Column (name="us_email",length=45,nullable=false)
private String email;
@Column (name="us_login",length=45,nullable=false)
private String login;
@Column (name="us_senha",length=16,nullable=false)
private String senha;
@Column (name="us_ramal",nullable=false)
private int ramal;
@Column (name="us_obsevacao",length=45)
private String obsevacao;
@Column (name="us_situação",nullable=false)
private Boolean situação;
@ManyToOne(fetch=FetchType.EAGER)
@JoinColumn(name="Perfil_per_id",referencedColumnName="per_id",nullable=false)
private Perfil perfil;
public Perfil getPerfil() {
return perfil;
}
public void setPerfil(Perfil perfil) {
this.perfil = perfil;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
public int getRamal() {
return ramal;
}
public void setRamal(int ramal) {
this.ramal = ramal;
}
public String getObsevacao() {
return obsevacao;
}
public void setObsevacao(String obsevacao) {
this.obsevacao = obsevacao;
}
public Boolean getSituação() {
return situação;
}
public void setSituação(Boolean situação) {
this.situação = situação;
}
}
*********arquivo confg************************
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- configuracao de Conexao com o babco de dados -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/testepatrimonial</property>
<property name="connection.username">root</property>
<property name="connection.password">1234</property>
<!-- JDBC connection pool (use the built-in) -->
<property name="connection.pool_size">1</property>
<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
<!-- gerenciamento -->
<property name="current_session_context_class">thread</property>
<!-- desabilita o cache -->
<property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>
<!-- exige comandos sql -->
<property name="show_sql">true</property>
<!-- criacao das tabelas -->
<property name="hbm2ddl.auto">update</property>
<mapping class="br.com.teste.domain.Usuario"/>
</session-factory>
</hibernate-configuration>
duas entidades usuário e o seu perfil(admin,visitante etc)
1 perfil pode ser atribuído a vários usuário porem 1 usuário so pode ter 1 perfil.
Segue erro:
Initial SessionFactory creation failed.org.hibernate.AnnotationException: @OneToOne or @ManyToOne on br.com.teste.domain.Usuario.perfil references an unknown entity: br.com.teste.domain.Perfil
Exception in thread "main" java.lang.ExceptionInInitializerError
at br.com.teste.util.HibernateUtil.buildSessionFactory(HibernateUtil.java:32)
at br.com.teste.util.HibernateUtil.<clinit>(HibernateUtil.java:12)
at br.com.teste.main.GerarTabela.main(GerarTabela.java:9)
Caused by: org.hibernate.AnnotationException: @OneToOne or @ManyToOne on br.com.teste.domain.Usuario.perfil references an unknown entity: br.com.teste.domain.Perfil
at org.hibernate.cfg.ToOneFkSecondPass.doSecondPass(ToOneFkSecondPass.java:109)
at org.hibernate.cfg.Configuration.processEndOfQueue(Configuration.java:1598)
at org.hibernate.cfg.Configuration.processFkSecondPassInOrder(Configuration.java:1521)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1422)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1846)
at br.com.teste.util.HibernateUtil.buildSessionFactory(HibernateUtil.java:25)
... 2 more
Segue meu codigo:
**********************classeperfil:*********************************************
package br.com.teste.domain;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="Perfil")
public class Perfil {
@Id
@Column (name="per_id",nullable=false)
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
@Column (name="per_descricao" ,length=50,nullable=false)
private String descricao;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
}
*******************************************classe usuario****************************************
package br.com.teste.domain;
import javax.persistence.Column;
import javax.persistence.Entity;
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.Table;
@Entity
@Table(name="Usuario")
public class Usuario {
@Id
@Column (name="us_id")
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
@Column (name="us_nome" ,length=45,nullable=false)
private String nome;
@Column (name="us_email",length=45,nullable=false)
private String email;
@Column (name="us_login",length=45,nullable=false)
private String login;
@Column (name="us_senha",length=16,nullable=false)
private String senha;
@Column (name="us_ramal",nullable=false)
private int ramal;
@Column (name="us_obsevacao",length=45)
private String obsevacao;
@Column (name="us_situação",nullable=false)
private Boolean situação;
@ManyToOne(fetch=FetchType.EAGER)
@JoinColumn(name="Perfil_per_id",referencedColumnName="per_id",nullable=false)
private Perfil perfil;
public Perfil getPerfil() {
return perfil;
}
public void setPerfil(Perfil perfil) {
this.perfil = perfil;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
public int getRamal() {
return ramal;
}
public void setRamal(int ramal) {
this.ramal = ramal;
}
public String getObsevacao() {
return obsevacao;
}
public void setObsevacao(String obsevacao) {
this.obsevacao = obsevacao;
}
public Boolean getSituação() {
return situação;
}
public void setSituação(Boolean situação) {
this.situação = situação;
}
}
*********arquivo confg************************
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- configuracao de Conexao com o babco de dados -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/testepatrimonial</property>
<property name="connection.username">root</property>
<property name="connection.password">1234</property>
<!-- JDBC connection pool (use the built-in) -->
<property name="connection.pool_size">1</property>
<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
<!-- gerenciamento -->
<property name="current_session_context_class">thread</property>
<!-- desabilita o cache -->
<property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>
<!-- exige comandos sql -->
<property name="show_sql">true</property>
<!-- criacao das tabelas -->
<property name="hbm2ddl.auto">update</property>
<mapping class="br.com.teste.domain.Usuario"/>
</session-factory>
</hibernate-configuration>
Bruno Costa
Curtidas 0