Pessoal a dias venho tetando usar o framework hibernate, entretanto sem sucesso realizei alguns tutoriais e ainda sim ele não funciona.
passos seguidos
Importei todas as libs da pasta lib do hibernate para as libs do meu projeto e tb o lib hibernate 3
Criei um arquivo hibernate.cfg.xml e coloquei dentro dele as configurações de conexão
Depois disso realizei a notações na minha entidade a ser persistida com @Entity para entidade e @Id para o campo identificador cpf
criei a base de dados e a tabela do meu banco de dados
e por criei uma classe quer iria persistir meu dados (inserir atualizar e remover… ) e assim vai .
entrentato quando rodo o erro que ele apresenta no console é esse.
LF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder”.
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Exception in thread “main” org.hibernate.MappingNotFoundException: resource: br/com/testehibernate/negocio/Funcionarios.hbm.xml not found
at org.hibernate.cfg.Configuration.addResource(Configuration.java:743)
at org.hibernate.cfg.Configuration.addClass(Configuration.java:788)
at br.com.testehibernate.persistencia.RepositorioFuncionariosDao.(RepositorioFuncionariosDao.java:18)
at br.com.testehibernate.negocio.Teste.main(Teste.java:13)
Dentro tb das libs do prejeto está o driver do postgresql
agradeço a ajuda.
Verifique o seu arquivo hbm, que é o arquivo de mapeamento da entity com a tabela do banco de dados, aparentemente ele não esta encontrando o arquivo ou ele não existe.
Posta seu mapeamento, pelo erro ele ta reclamando que não encontro o arquivo de mapeamento.
Eu não fiz arquivo de mapeamento xml o que fiz foi apenas o seguinte na entidade que quero persistir.
import javax.persistence.Id;
import javax.persistence.Entity;
import javax.persistence.Table;
@Entity
@Table (name="funcionarios")
public class Funcionarios {
private String nome;
@Id
private String cpf;
private int idade;
private String identidade;
public Funcionarios() {
}
public Funcionarios(String nome, String cpf, int idade, String identidade) {
this.nome = nome;
this.cpf = cpf;
this.identidade = identidade;
this.idade = idade;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public String getIdentidade() {
return identidade;
}
public void setIdentidade(String identidade) {
this.identidade = identidade;
}
public int getidade() {
return idade;
}
public void setidade(int idade) {
this.idade = idade;
}
}
Blz então, você esta usando o mapeamento via anotações, posta ai o seu arquivo hibernate.cfg.xml, assim podemos verificar as configurações.
Falou.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.username">postgres</property>
<property name="hibernate.connection.password">postgres</property>
<property name="hibernate.connection.url">jdbc:postgres://localhost:5432/pesquisa</property>
<property name="hibernate.connection.driver_class">org.postgresql.jdbc.Driver</property>
<property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<!-- Mapping classes -->
<mapping class="br.com.testehibernate.negocio.Funcionarios" />
</session-factory>
</hibernate-configuration>
esse arquivo xml está dentro da pasta src do meu projeto.
Troque a linha:
<property name="hibernate.connection.url">jdbc:postgres://localhost:5432/pesquisa</property>
Por essa:
<property name="hibernate.connection.url">jdbc:postgresql://localhost:5432/pesquisa</property>
Testa e fala se resolveu.
Olá, teria como voce postar suas classe hibernateUtil (aquela classe que vc carrega as propriedades da session factory)…
Como vc configurou pro anotaçoes e ele esta pedindo uma configuracao xml acredito que a configuracao de sua session esteja errada
vc deve ter colocado algo parecido com isso
sessionFactory = new Configuration().configure(pathConfig).buildSessionFactory();
e deveria ser isso:
sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
package br.com.testehibernate.persistencia;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
import br.com.testehibernate.negocio.Funcionarios;
public class RepositorioFuncionariosDao implements IrepositorioFuncionariosDao{
private SessionFactory factory;
public RepositorioFuncionariosDao(){
factory= new Configuration().addClass(Funcionarios.class).buildSessionFactory();
}
public void inserirFuncionarios(Funcionarios f){
Session session=factory.openSession();
session.save(f);
session.flush();
session.close();
}
public void atualizarFuncionarios(){
}
}
Creio que o erro esta na linha 18
factory= new Configuration().addClass(Funcionarios.class).buildSessionFactory();
tenta trocar por isso aqui
factory= new AnnotationConfiguration().configure().buildSessionFactory();
new Configuration é para mapeamento xml, para mapeamento com anotaçoes o certo é new AnnotationConfiguration.
Outra coisa nao deve mapear uma classe duas vezes…se mapeou no hibernate.cfg nao deve adicionar-la nas configuracoes do factory.
Blz cara vlw eu alterei a linha que você mandou e agora aparece o seguinte
Exception in thread “main” org.hibernate.HibernateException: JDBC Driver class not found: org.postgresql.jdbc.Driver
at org.hibernate.connection.DriverManagerConnectionProvider.configure(DriverManagerConnectionProvider.java:89)
at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:143)
at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:84)
at org.hibernate.cfg.SettingsFactory.createConnectionProvider(SettingsFactory.java:459)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:91)
at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2833)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2829)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1840)
at br.com.testehibernate.persistencia.RepositorioFuncionariosDao.(RepositorioFuncionariosDao.java:18)
at br.com.testehibernate.negocio.Teste.main(Teste.java:13)
Caused by: java.lang.ClassNotFoundException: org.postgresql.jdbc.Driver
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:192)
at org.hibernate.connection.DriverManagerConnectionProvider.configure(DriverManagerConnectionProvider.java:84)
… 9 more
Verifica se o jar do PostgreSQL esta no seu classpath.
O meu classe path está dessa forma.
![]()
Têm essas libs dentro das libs do meu projeto
antlr-2.7.6
commons-collections-3.1
dom4j-1.6.1
javassist-3.12.0.GA
jta-1.1
slf4j-api-1.6.1
c3p0-0.9.1
ehcache-1.5.0
infinispan-core-4.2.0.ALPHA1
jbosscache-core-3.2.1.GA
oscache-2.1
proxool-0.8.3
swarmcache-1.0RC2
hibernate-jpa-2.0-api-1.0.0.Final
cglib-2.2
javassist-3.12.0.GA
hibernate3
postgresql-9.0-801.jdbc3
Ow,nao to conseguindo ver seu classpath nem no firefox nem no IE… 
escreve os .jar que estao nele… ou entao verifica se todos os jars do projeto estao no classpath.
Ow, que servidor de aplicação voce esta usando? dependendo os jar do drive do banco nao fica no projeto e sim no servidor.
O tomcat nao tem esse problema nao… eh outra coisa :shock:
Pessoal to precisando de ajuda com esse problema alguém me passa sugestõs se for o caso eu refaço
tudo do zero, mas, me passem uma fonte confiavel que me mostre passo a passo com configurar o
hibernate dentro do meu projeto vlw.