JPA e Netbenas - Não Sei?!?!?

2 respostas
R

Estou tentando da uma testada na JPA. Porem esta acontecendo o seguinte erro

Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named persistencia: No META-INF/persistence.xml was found in classpath
.

Esta é a minha classe:

package persistencia;     
     
import java.io.Serializable;     
import javax.persistence.Column;     
import javax.persistence.Entity;     
import javax.persistence.Id;     
import javax.persistence.NamedQueries;     
import javax.persistence.NamedQuery;     
import javax.persistence.Table;     
     
/**    
*    
* @author Rafael Ferreira    
*/     
@Entity     
@Table(name = "associado")     
@NamedQueries({@NamedQuery(name = "Associado.findByAssCodigo",       
               query = "SELECT a FROM Associado a WHERE a.assCodigo = :assCodigo"),     
@NamedQuery(name = "Associado.findByAssNome",     
            query = "SELECT a FROM Associado a WHERE a.assNome = :assNome")     
})     
public class Associado implements Serializable {     
     
    private static final long serialVersionUID = 1L;     
    @Id     
    @Column(name = "ass_codigo", nullable = false)     
    private Integer assCodigo;     
    @Column(name = "ass_nome")     
    private String assNome;     
     
    public Associado() {     
    }     
    public Associado (Integer codigo, String nome){     
        setAssCodigo(codigo);     
        setAssNome(nome);     
    }     
     
    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 "persistencia.Associado[assCodigo=" + assCodigo + "]";     
    }     
}
package persistencia;     
     
import javax.persistence.EntityManager;     
import javax.persistence.EntityManagerFactory;     
import javax.persistence.EntityTransaction;     
import javax.persistence.Persistence;     
     
/**    
*    
* @author Administrador    
*/     
public class Main {     
     
    /**    
     * @param args the command line arguments    
     */     
    public static void main(String[] args) {     
        Associado associado = new Associado();     
        associado.setAssCodigo(new Integer(1));     
        associado.setAssNome("Teste");     
        salva(associado);       
             
         
    }     
         
     
    public static  void persist(Object object) {     
        EntityManagerFactory emf = javax.persistence.Persistence.createEntityManagerFactory("persistencia");     
        EntityManager em = emf.createEntityManager();     
        em.getTransaction().begin();     
        try {     
            em.persist(object);     
            em.getTransaction().commit();     
        } catch (Exception e) {     
            e.printStackTrace();     
            em.getTransaction().rollback();     
        } finally {     
            em.close();     
        }     
    }     
         
    public static void salva(Object object){     
             
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("persistencia");     
        EntityManager em = emf.createEntityManager();     
        EntityTransaction tx = em.getTransaction();     
        tx.begin();     
        em.persist(object);     
        tx.commit();     
        em.close();     
             
             
             
    }     
     
}     
Main
persistence     
     
<?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 [url]http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">[/url]     
  <persistence-unit name="persistencia" >     
    <provider>oracle.toplink.essentials.PersistenceProvider</provider>     
    <class>persistencia.Associado</class>     
    <properties>     
      <property name="toplink.jdbc.user" value="postgres"/>     
      <property name="toplink.jdbc.password" value="postgres"/>     
      <property name="toplink.jdbc.url" value="jdbc:postgresql://localhost:5432/jpa"/>     
      <property name="toplink.jdbc.driver" value="org.postgresql.Driver"/>     
    </properties>     
  </persistence-unit>     
</persistence>     
persistence   
  
<?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 [url]http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">[/url]   
  <persistence-unit name="persistencia" >   
    <provider>oracle.toplink.essentials.PersistenceProvider</provider>   
    <class>persistencia.Associado</class>   
    <properties>   
      <property name="toplink.jdbc.user" value="postgres"/>   
      <property name="toplink.jdbc.password" value="postgres"/>   
      <property name="toplink.jdbc.url" value="jdbc:postgresql://localhost:5432/jpa"/>   
      <property name="toplink.jdbc.driver" value="org.postgresql.Driver"/>   
    </properties>   
  </persistence-unit>   
</persistence>

No meu projeto estao adicionados os seguintes JAR:

PostgresSQL Drive TopLink-essentials.jar TopLink-essentials-agente.far

2 Respostas

J

Olá, estava com o mesmo problema…
e não sei se você conseguiu resolver… mas eu consegui… vai lah
vc tem que jogar p pasta dos bytecodes(aquela pasta que possui os arquivos .class)… a pasta META-INF …
n sei pq diabos, o netbeans não copiou essa pasta p pasta dos bytecods…
espero ter ajudado,
fwl pessoal
Jonathan Martinez

R

Agradeço a atençao e a lembraná do amigo!!
muito obrigado!!

Criado 10 de março de 2008
Ultima resposta 8 de jul. de 2008
Respostas 2
Participantes 2