Vou passar todo o código-fonte que fica mais fácil pra você encontrar o erro. :D
Classe Main
packageteste_hibernate;importorg.hibernate.SessionFactory;importorg.hibernate.Session;importorg.hibernate.cfg.Configuration;importorg.hibernate.cfg.Environment;importjava.sql.Date;publicclassMain{privateSessionFactoryfabricaSessoes;publicvoidtesteInsercao(){Sessionsessao=fabricaSessoes.openSession();org.hibernate.Transactiontransacao=sessao.beginTransaction();Pessoapessoa=newPessoa("Fulano da Silva","[email removido]",Date.valueOf("2007-01-13"),"2222-2222");sessao.save(pessoa);transacao.commit();sessao.close();}publicstaticvoidmain(String[]args){finalMaintest=newMain();Configurationcfg=newConfiguration().addClass(Pessoa.class);test.fabricaSessoes=cfg.buildSessionFactory();test.testeInsercao();}}
Classe Pessoa
packageteste_hibernate;importjava.sql.Date;publicclassPessoa{/** Creates a new instance of Pessoa */publicPessoa(Stringnome,Stringemail,DatedataNascimento,Stringtelefone){this.nome=nome;this.dataNascimento=dataNascimento;this.email=email;this.telefone=telefone;}/** * Mantém o valor da propriedade id. */privatelongid;/** * "Getter" para a propriedade id. * @return Valor para a propriedade id. */publiclonggetId(){returnthis.id;}/** * "Setter" para a propriedade id. * @param id Novo valor para a propriedade id. */publicvoidsetId(longid){this.id=id;}/** * Mantém o valor da propriedade nome. */privateStringnome;/** * "Getter" para a propriedade nome. * @return Valor para a propriedade nome. */publicStringgetNome(){returnthis.nome;}/** * "Setter" para a propriedade nome. * @param nome Novo valor para a propriedade nome. */publicvoidsetNome(Stringnome){this.nome=nome;}/** * Mantém o valor da propriedade dataNascimento. */privatejava.sql.DatedataNascimento;/** * "Getter" para a propriedade dataNascimento. * @return Valor para a propriedade dataNascimento. */publicjava.sql.DategetDataNascimento(){returnthis.dataNascimento;}/** * "Setter" para a propriedade dataNascimento. * @param dataNascimento Novo valor para a propriedade dataNascimento. */publicvoidsetDataNascimento(java.sql.DatedataNascimento){this.dataNascimento=dataNascimento;}/** * Mantém o valor da propriedade email. */privateStringemail;/** * "Getter" para a propriedade endereco. * @return Valor para a propriedade endereco. */publicStringgetEmail(){returnthis.email;}/** * "Setter" para a propriedade endereco. * @param endereco Novo valor para a propriedade endereco. */publicvoidsetEmail(Stringemail){this.email=email;}/** * Mantém o valor da propriedade telefone. */privateStringtelefone;/** * "Getter" para a propriedade telefone. * @return Valor para a propriedade telefone. */publicStringgetTelefone(){returnthis.telefone;}/** * "Setter" para a propriedade telefone. * @param telefone Novo valor para a propriedade telefone. */publicvoidsetTelefone(Stringtelefone){this.telefone=telefone;}}
E o .hbm
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mappingpackage="teste_hibernate"><classname="Pessoa"table="pessoa"><idname="id"column="id"><generatorclass="increment"/></id><propertyname="nome"column="nome"/><propertyname="dataNascimento"column="data_nascimento"/><propertyname="email"column="email"/><propertyname="telefone"column="telefone"/></class></hibernate-mapping>
Para ter maiores detalhes sobre seu erro, ative o log4J também,
para isso contando que os jars estão corretos, coloque este arquivo na raiz do seu src:
Aparentemente, seu o jar do driver jdbc do postgrees nao está no classpath.
mas vejo que você colocou n parâmetros de config pro hibernate no seu .properties,
tenha certeza de cada propriedade.
Lembrando também que é uma boa prática fazer uso do hibernate.cfg.xml e não do .properties
uma vez que no hibernate.cfg.xml você pode adicionar seus arquivos de mapeamentos (*.hbm.xml)
o que eliminaria esse addClass() => new Configuration().addClass(Pessoa.class);
Abraços e boa sorte.
josue_carrecon
Blz.
Então eu vou seguir a melhor solução - retirar o hibernate.properties e continuar da onde eu estava.
O que pode ser aquele erro? As configurações do .cfg estão certas?