Construi uma aplicação simples para testar a JPA, as esta dando o seguinte erro:
Exception in thread "main" java.lang.NullPointerException
at oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider.createEntityManagerFactory(EntityManagerFactoryProvider.java:120)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:51)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:33)
at persistence.BaseDao.<init>(BaseDao.java:17)
at cliente.Main.main(Main.java:24)
Java Result: 1
Estas são as classes:
persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
<persistence-unit name="jpaPU" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>model.Associado</class>
<properties>
<property name="hibernate.connection.username" value="postgres"/>
<property name="hibernate.connection.driver_class" value="org.postgresql.Driver"/>
<property name="hibernate.connection.password" value="postgres"/>
<property name="hibernate.connection.url" value="jdbc:postgresql://localhost:5432/jpa"/>
<property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
</properties>
</persistence-unit>
</persistence>
Associado.java
package model;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.Table;
/**
*
* @author Administrador
*/
@Entity
@Table(name = "associado")
@NamedQueries({})
public class Associado implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "ass_codigo", insertable=false)
private Integer assCodigo;
@Column(name = "ass_nome")
private String assNome;
public Associado() {
}
public Associado(Integer assCodigo) {
this.assCodigo = assCodigo;
}
public Integer getAssCodigo() {
return assCodigo;
}
public void setAssCodigo(Integer assCodigo) {
this.assCodigo = assCodigo;
}
public String getAssNome() {
return assNome;
}
public void setAssNome(String assNome) {
this.assNome = assNome;
}
@Override
public int hashCode() {
int hash = 0;
hash += (assCodigo != null ? assCodigo.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Associado)) {
return false;
}
Associado other = (Associado) object;
if ((this.assCodigo == null && other.assCodigo != null) || (this.assCodigo != null && !this.assCodigo.equals(other.assCodigo))) {
return false;
}
return true;
}
@Override
public String toString() {
return "model.Associado[assCodigo=" + assCodigo + "]";
}
}
BaseDao
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package persistence;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
public class BaseDao<T> {
private static EntityManagerFactory emf;
private EntityManager em;
public BaseDao(){
emf = Persistence.createEntityManagerFactory("jpaPU");
em = emf.createEntityManager();
}
public boolean create(T obj){
try{
em.persist(obj);
em.getTransaction().commit();
return true;
}
catch (Exception e){
e.printStackTrace();
em.getTransaction().rollback();
return false;
}
}
public void persist(Object object) {
em.getTransaction().begin();
try {
em.persist(object);
em.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
em.getTransaction().rollback();
} finally {
em.close();
}
}
}
main.java
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
BaseDao<Associado> dao = new BaseDao<Associado>();
Associado associado = new Associado();
associado.setAssNome("Rafael");
dao.create(associado);
}
}