Jpa exemplo simples

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);
       
       
    }

  

}

Seus drivers estão corretos no classpath?

Eu utilizo o hibernate e não vejo exception falando do toplink…

Eu tb estou utilizando o hibernate e o Entity Hibernate

Adicionei ao projeto os seguintes pacotes:

toplink-essentials-agent
toplink-essentials
javaee

Funcionou?

Não !

Criei um novo projeto no NetBeans com a biblioteca TopLink. Segue dando erro, porem
é outro:
[quote]
Exception in thread main javax.persistence.persistenceException:
No Persistence provider for EntityManager named persistencia:
No META-INF/persitence.xml was found in classpath
[/quote]

Neste caso tens que criar uma pasta chamada META-INF dentro da tua pasta SRC, ou seja, dentro do diretório das tuas classes java. E dentro desta pasta ficará o seu persistence.xml.

Espero ter ajudado,

[]'s