Usando hibernate?

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?

1 curtida

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.