Problema usando JPA + Hibernate + Netbeans + postgres + eclipselink

4 respostas
K

Boa tarde pessoal… Estou começando a utilizar JPA e estou o seguinte problema na hora que tento gerar as minhas tabelas atravez da Manager Factory
Segue abaixo os codigos:

Classe entidade

package experimento;

import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="experimentos")
public class Experimento implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    

    //identificacao
    private int codigo;
    private int ano;
    private int planoDeAcao;
    private String nome;
    private String acesso;

    // implatação

    private String instituicao;
    private String campo;
    private String pais;
    private String municipio;
    private String local;     //nescessario fazer a modificao no banco tb... para localizacao
    

    public Experimento() {
    }

    //gettes and setters..
......

}

persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.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_2_0.xsd">
  <persistence-unit name="experimento" transaction-type="RESOURCE_LOCAL">
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
    <non-jta-data-source/>
    <class>experimento.Experimento</class>
    <properties>
      <property name="javax.persistence.jdbc.url" value="jdbc:postgresql://localhost:5432/ToPerdidinho"/>
      <property name="javax.persistence.jdbc.user" value="postgres"/>
      <property name="javax.persistence.jdbc.password" value="francisco"/>
      <property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver"/>
      <property name="eclipselink.logging.level" value="ALL"/>
      <property name="eclipselink.ddl-generation" value="drop-and-create-tables"/>
    </properties>
  </persistence-unit>
</persistence>

Classe de teste

package experimento;
import javax.persistence.EntityManager;

import javax.persistence.EntityManagerFactory;

import javax.persistence.Persistence;

public class testeJpa {

public static void main(String[] args) {

EntityManagerFactory emf = Persistence.createEntityManagerFactory("experimento");

EntityManager em = emf.createEntityManager();

em.close();

emf.close();

 }

}

O erro que está dando é o seguinte:

Exception in thread “main” javax.persistence.PersistenceException: No Persistence provider for EntityManager named experimento

Os jars eu já verifiquei e conferi em diversos site se tem algum faltando ou não… acredito que não seja problema de jar

O grande problema seja talvez a estrutura de diretorios, ou seja, aonde eu coloco o persistence.xml??? … no projeto já tentei colocar esse arquivo dentro do pacote que esta as classes e tambem no configuration files… porem ainda continua o mesmo erro…

Alguma luz pessoal??

Obrigado
Francisco

4 Respostas

apferreira

Quanto à localização do arquivo, ele deve ficar na pasta “Configuration Files” do projeto.

K

De fato já está nessa pasta!!!
Quando ele fala que nao está encontrado o provinder… oque significa?? que nao estou encontrado o persintence.xml ou não estou encontrando, neste caso, o entity unit experimento??
Obrigado

K

Estava vendo aqui uns parametros de configuracao do persistence.xml
Para que serve JNDI?
Obrigado

apferreira

Grosso modo, JNDI é sua conexão com o banco.

Criado 21 de junho de 2011
Ultima resposta 22 de jun. de 2011
Respostas 4
Participantes 2