Pessoal boa tarde. Estou c um erro de unknow entity usando o hibernate. Estou c todas as anotatios na classe q representa a tabela e no hibernate.cfg tb esta mapeada c caminho correto…ta tudo no lugar e somente esse erro retorna. é como se a classe nao estivesse no pacote…ele simplesmente nao enxerga. Alguem q ja use hibernate pode me ajudar pf.
Só existem duas situações onde esse erro ocorre: classe sem anotação @Entity ou quando a classe não foi incluída no arquivo de configuração.
Pode postar o erro?
Veja se o banco de dados foi criado essa entidade
Boa noite. O banco esta ok…tem a tabela. Eu coloquei msg pra saber se o hibernate estava realmente buscando as informacoea do hibernate.cfg.xml…e esta…ele conecta ao banco e tudo…mas quando ele chega no mapping class eh como se a classe java nao existisse. Eu verifiquei outros projetos antigos e q funcionavam e estao exatamente iguais.
mar 16, 2017 9:45:01 PM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {5.2.8.Final}
mar 16, 2017 9:45:01 PM org.hibernate.cfg.Environment
INFO: HHH000206: hibernate.properties not found
mar 16, 2017 9:45:02 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager
INFO: HCANN000001: Hibernate Commons Annotations {5.0.1.Final}
mar 16, 2017 9:45:03 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
WARN: HHH10001002: Using Hibernate built-in connection pool (not for production use!)
mar 16, 2017 9:45:03 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001005: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql://localhost/agenda]
mar 16, 2017 9:45:03 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001001: Connection properties: {user=root, password=****}
mar 16, 2017 9:45:03 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001003: Autocommit mode: false
mar 16, 2017 9:45:03 PM org.hibernate.engine.jdbc.connections.internal.PooledConnections
INFO: HHH000115: Hibernate connection pool size: 20 (min=1)
mar 16, 2017 9:45:03 PM org.hibernate.dialect.Dialect
INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQL5InnoDBDialect
Exception in thread “main” org.hibernate.MappingException: Unknown entity: br.com.javaparaweb.capitulo3.crudannotations.Contato
at org.hibernate.metamodel.internal.MetamodelImpl.entityPersister(MetamodelImpl.java:620)
at org.hibernate.internal.SessionImpl.getEntityPersister(SessionImpl.java:1627)
at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:104)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:192)
at org.hibernate.event.internal.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:38)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:177)
at org.hibernate.event.internal.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:32)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:73)
at org.hibernate.internal.SessionImpl.fireSave(SessionImpl.java:682)
at org.hibernate.internal.SessionImpl.save(SessionImpl.java:674)
at org.hibernate.internal.SessionImpl.save(SessionImpl.java:669)
at br.com.javaparaweb.capitulo3.crudannotations.ContatoCrudAnnotations.salvar(ContatoCrudAnnotations.java:25)
coloquei o erro…veja UNKNOW ENTITY e o caminho exatamente a classe…o pacote ta correto
Cadê o código da classe?
br.com.javaparaweb.capitulo3.crudannotations.Contato
/*Classe contato - mapeada via anootations do banco de dados criado
*
* */
package br.com.javaparaweb.capitulo3.crudannotations;
import java.sql.Date;
import javax.persistence.*;
@Entity
@Table(name="contato")
public class Contato {
public Contato(){
}
@Id
@GeneratedValue
@Column(name="codigo")
private Integer codigo;
@Column(name="nome", length=50, nullable=true)
private String nome;
@Column(name="telefone", length=50, nullable=true)
private String telefone;
@Column(name="email", length=50, nullable=true)
private String email;
@Column(name="dt_cad", nullable=true)
private Date dataCadastro;
@Column(name="obs", nullable=true)
private String observacao;
public Integer getCodigo() {
return codigo;
}
public void setCodigo(Integer codigo) {
this.codigo = codigo;
}
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 getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Date getDataCadastro() {
return dataCadastro;
}
public void setDataCadastro(Date dataCadastro) {
this.dataCadastro = dataCadastro;
}
public String getObservacao() {
return observacao;
}
public void setObservacao(String observacao) {
this.observacao = observacao;
}
}
pessoal fiz um projeto no netbeans simples sem o mavem, importando as jar e tal…funcionou corretamente…fiz o mesmo no eclipse sem maven e deu o mesmo erro…começo a achar q o problema eh no eclipse
Impossível.
Taalvez o netbeans possua alguma funcionalidade inexistente no eclipse (como mapeamento automático).
Você está utilizando o arquivo hibernate.cfg.xml ou o hibernate.properties?
Ola…entao …fiz alguns testes…voce usa o maven? o q eu percebi: quando o maven importa o hibernate declarado no pom.xml como dependencia ele traz o hibernate certinho e com teste de conexao c o banco tudo ok…mas na questao do mapeamento da o erro q disse…entao eu importei manualmente os jar do hibernate e advinha …funcionou…se vc trabalha c maven voce consegue perceber o q pode estar havendo? vou postar o pom assim q puder
Pode ser conflito.
Talvez esteja faltando algo no pom.xml, para que tal dificuldade ocorra.
Eu sempre coloco os artefatos do hibernate-core e do hibernate-entitymanager e dificilmente tenho problemas.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>javaparaweb</groupId>
<artifactId>exemplohibernate</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>Exemplos de Hibernate</name>
<description>Exemplo</description>
<dependencies>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.2.8.Final</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.30</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>
olha o pom…entao tb pensei nisso…no.livro do projeto ao indica essas duas dependencias…mas vou colocar a dep do manager tb
Pessoal boa tarde. Agradeço a tenção de todos. Consegui resolver os problemas. Por incrível que pareça esse erro especifico de não encontrar a entidade mapeada era na versão que eu estava usando do hibernate. Usando a 4.3.4, que é a indicada no livro, não baixa, ja a que eu usei 4.3.11 funcionou como deveria. Coloquei a 5.0.0 e começou dar o erro de não encontrar a entidade. Pode ser que algo tenha mudado a partir desta versão pois todos as demais acima desta (fiz teste por amostragem) se mostraram insatisfatórias. Encerro o post, muito obrigado e o que estiver a meu alcance pretendo contribuir com a comunidade . Obrigado a todos e o projeto final se inicia hoje.