@Bruno.Silveira escreveu:
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.(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 moreSegue 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>
Mensagens: 4
Participantes: 3