Bom dia pessoal,
estou com a seguinte mensagem de erro ao tentar um projeto com hibernate
24/06/2013 10:42:17 org.hibernate.annotations.common.Version <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {4.0.2.Final}
24/06/2013 10:42:17 org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {4.2.2.Final}
24/06/2013 10:42:18 org.hibernate.cfg.Environment <clinit>
INFO: HHH000205: Loaded properties from resource hibernate.properties: {hibernate.connection.driver_class=org.h2.Driver, hibernate.dialect=org.hibernate.dialect.H2Dialect, hibernate.max_fetch_depth=5, hibernate.format_sql=true, hibernate.generate_statistics=true, hibernate.connection.username=sa, hibernate.connection.url=jdbc:h2:mem:db1;DB_CLOSE_DELAY=-1;MVCC=TRUE, hibernate.bytecode.use_reflection_optimizer=false, hibernate.jdbc.batch_versioned_data=true, hibernate.connection.pool_size=5}
24/06/2013 10:42:18 org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
Exception in thread "main" javax.persistence.PersistenceException: Unable to configure EntityManagerFactory
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:387)
at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:58)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:63)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47)
at com.exemplos.repositorio.RepositorioCliente.<init>(RepositorioCliente.java:22)
at com.exemplos.testes.Testes.main(Testes.java:10)
Caused by: java.lang.NullPointerException
at org.hibernate.ejb.packaging.PersistenceXmlLoader.getStreamFromClasspath(PersistenceXmlLoader.java:154)
at org.hibernate.ejb.packaging.PersistenceXmlLoader.loadURL(PersistenceXmlLoader.java:91)
at org.hibernate.ejb.packaging.PersistenceXmlLoader.deploy(PersistenceXmlLoader.java:171)
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:326)
... 5 more
meu persistence.xml
<persistence
version="1.0"
xsi:schemaLocation=
"http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd
http://java.sun.com/xml/ns/persistence/orm
http://java.sun.com/xml/ns/persistence/orm_1_0.xsd"
xmlns:orm="http://java.sun.com/xml/ns/persistence/orm"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/persistence">
<persistence-unit name="XE" transaction-type="RESOURCE_LOCAL">
<class>com.exemplos.entidade.Cliente</class>
<!-- provedor/implementacao do JPA -->
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<!-- configura o auto mapping das tabelas -->
<property name="hibernate.archive.autodetection" value="class"/>
<!-- dados da conexao -->
<property name="hibernate.connection.username" value="dbuser"/>
<property name="hibernate.connection.driver_class" value="oracle.jdbc.OracleDriver"/>
<property name="hibernate.connection.password" value="bspr08*"/>
<property name="hibernate.connection.url" value="jdbc:oracle:thin:@localhost:1521:XE"/>
<property name="hibernate.connection.dialect" value="org.hibernate.dialect.Oracle10gDialect"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
<!--
<property name="javax.persistence.jdbc.driver" value="oracle.jdbc.driver.OracleDriver" />
<property name="javax.persistence.jdbc.url" value="jdbc:oracle:thin:@localhost:1521:xe" />
<property name="javax.persistence.jdbc.user" value="usuario" />
<property name="javax.persistence.jdbc.password" value="******" />
-->
<!-- propriedades do hibernate -->
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
<property name="use_sql_comments" value="true" />
<!-- atualiza o banco, gera as tableas se for preciso -->
<property name="hibernate.hbm2ddl.auto" value="update" />
</properties>
</persistence-unit>
</persistence>
Classe de DAO
package com.exemplos.repositorio;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.PersistenceException;
import javax.persistence.Query;
import com.exemplos.entidade.Cliente;
public class RepositorioCliente {
//cria objeto do Hibernate para manipulação do banco
//serão usados para fazer a persistencia no banco de dados
EntityManagerFactory emf;
EntityManager em;
//Construtor da classe
public RepositorioCliente(){
//referenciando a unidade de persistencia criada no xml
emf = Persistence.createEntityManagerFactory("XE");
em = emf.createEntityManager();
}
public void salvar(Cliente c){
try{
//abre conexão com o banco de dados
em.getTransaction().begin();
//exemplo de como gravar usando o objeto. No caos merge, atualiza
//e não sobreescreve
em.merge(c);
//Comita o que foi realizado
em.getTransaction().commit();
emf.close();
}catch(PersistenceException e){
em.getTransaction().rollback();
e.printStackTrace();
}
}
public void remover(Cliente c){
try{
em.getTransaction().begin();
em.remove(c);
em.getTransaction().commit();
emf.close();
}catch(PersistenceException e){
em.getTransaction().rollback();
}
}
@SuppressWarnings("unchecked")
public List<Cliente> listarTodos(){
em.getTransaction().begin();
//Cria Consulta Baseada em jpa
Query consulta = em.createQuery("select cliente from cliente cliente");
List<Cliente> clientes = consulta.getResultList();
em.getTransaction().commit();
emf.close();
return clientes;
}
}
Minha classe de Entidade
package com.exemplos.entidade;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
//Notações
@Entity // define a classe como um entidade para a persistencia
@Table(name="CLIENTE") // define a classe como uma table para realizar persistencia
public class Cliente {
@Id // Configura objeto no banco com uma identificação
@GeneratedValue(strategy=GenerationType.IDENTITY) // Define a chave como unica
private int cod_cliente;
@Column // Mapeia para a persistencia o a variavel como um campo da tabela
private String nome;
@Column
private int idade;
public int getCod_cliente() {
return cod_cliente;
}
public void setCod_cliente(int cod_cliente) {
this.cod_cliente = cod_cliente;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public int getIdade() {
return idade;
}
public void setIdade(int idade) {
this.idade = idade;
}
}
Alguem saberia o que pode estar errado, estou usando o hibernate-release-4.2.2.Final,
adicionei todas as lib’s de todas as pastas e o persistence.xml, está dentro da pasta META-INF, dentro do src.
Grato pessoal