Erro EntityManagerFactory

4 respostas
peresjuliao

Olá, Pessoal

Estou desenvolvendo uma implemetação utilizando JPA no netbeans 6.8 segue abaixo a listagem dos códiogs:

<?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="myJPAExamplePU" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <class>br.com.peres.jpa.entity.People</class>
    <properties>
      <property name="hibernate.connection.username" value="app"/>
      <property name="hibernate.connection.driver_class" value="org.apache.derby.jdbc.ClientDriver"/>
      <property name="hibernate.connection.password" value="app"/>
      <property name="hibernate.connection.url" value="jdbc:derby://localhost:1527/Siscom"/>
      <property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
      <property name="hibernate.hbm2ddl.auto" value="update"/>
    </properties>
  </persistence-unit>
</persistence>
package br.com.peres.jpa.entity;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;

@Entity(name="PEOPLE")
public class People implements java.io.Serializable {

    @Id
    @Column(nullable=false, name="ID")
    private Integer id;
    @Column(nullable=false, name="NAME")
    private String name;
    @Column(nullable=false, name="AGE")
    private Integer age;

    public People() {
    }

    public People(Integer id) {
        this.id = id;
    }

    public People(Integer id, String name, Integer age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final People other = (People) obj;
        if (this.id != other.id && (this.id == null || !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 7;
        hash = 41 * hash + (this.id != null ? this.id.hashCode() : 0);
        return hash;
    }
}

E é nessa classe que mora o problemas que não consigo resolver

package br.com.peres.jpa;

import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public class TheClassApp {

    EntityManagerFactory emf = new Persistence.createEntityManagerFactory("myJPAExamplePU"); // Erro aqui

}

Quando compilo aparece o sequinte erro:

init:
Deleting: C:\Users\Peres\Documents\NetBeansProjects\myJPAExample\build\built-jar.properties
deps-jar:
Updating property file: C:\Users\Peres\Documents\NetBeansProjects\myJPAExample\build\built-jar.properties
Compiling 1 source file to C:\Users\Peres\Documents\NetBeansProjects\myJPAExample\build\classes
C:\Users\Peres\Documents\NetBeansProjects\myJPAExample\src\br\com\peres\jpa\TheClassApp.java:17: cannot find symbol
symbol  : class createEntityManagerFactory
location: class javax.persistence.Persistence
    EntityManagerFactory emf = new Persistence.createEntityManagerFactory("myJPAExamplePU");
1 error
C:\Users\Peres\Documents\NetBeansProjects\myJPAExample\nbproject\build-impl.xml:430: The following error occurred while executing this line:
C:\Users\Peres\Documents\NetBeansProjects\myJPAExample\nbproject\build-impl.xml:199: Compile failed; see the compiler error output for details.
BUILD FAILED (total time: 1 second)

Já tentei de tudo será que alguém pode me dar uma luz, desde já agradeço

Abraços e boa pácoa

4 Respostas

H

Acho que você deve tirar o “new”.

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

Espero ter ajudado.

peresjuliao

Olá

Nossa companheiro é mesmo hein foi so tirar o new, :oops:

peresjuliao

Após retirar o new ficou assim:

package br.com.peres.jpa;

import br.com.peres.jpa.entity.People;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public class TheClassApp {

    public static void main(String[] args) {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("PeresPersistenceUnit");
        EntityManager em = emf.createEntityManager();
        People p = em.find(People.class, 1);
        System.out.println("The people name is " + p.getName());

        em.close();
        emf.close();

    }

}

mas quando compilo da o seguinte erro:

run:
04/04/2010 01:53:58 org.hibernate.cfg.annotations.Version <clinit>
INFO: Hibernate Annotations 3.3.1.GA
04/04/2010 01:53:58 org.hibernate.cfg.Environment <clinit>
INFO: Hibernate 3.2.5
04/04/2010 01:53:58 org.hibernate.cfg.Environment <clinit>
INFO: hibernate.properties not found
04/04/2010 01:53:58 org.hibernate.cfg.Environment buildBytecodeProvider
INFO: Bytecode provider name : cglib
04/04/2010 01:53:58 org.hibernate.cfg.Environment <clinit>
INFO: using JDK 1.4 java.sql.Timestamp handling
04/04/2010 01:53:58 org.hibernate.ejb.Version <clinit>
INFO: Hibernate EntityManager 3.3.2.GA
04/04/2010 01:53:59 org.hibernate.cfg.AnnotationBinder bindClass
INFO: Binding entity from annotated class: br.com.peres.jpa.entity.People
04/04/2010 01:53:59 org.hibernate.cfg.annotations.EntityBinder bindTable
INFO: Bind entity br.com.peres.jpa.entity.People on table People
04/04/2010 01:53:59 org.hibernate.cfg.AnnotationConfiguration secondPassCompile
INFO: Hibernate Validator not found: ignoring
04/04/2010 01:53:59 org.hibernate.connection.DriverManagerConnectionProvider configure
INFO: Using Hibernate built-in connection pool (not for production use!)
04/04/2010 01:53:59 org.hibernate.connection.DriverManagerConnectionProvider configure
INFO: Hibernate connection pool size: 20
04/04/2010 01:53:59 org.hibernate.connection.DriverManagerConnectionProvider configure
INFO: autocommit mode: true
04/04/2010 01:53:59 org.hibernate.connection.DriverManagerConnectionProvider configure
SEVERE: JDBC Driver class not found: org.apache.derby.jdbc.ClientDriver
java.lang.ClassNotFoundException: org.apache.derby.jdbc.ClientDriver
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:169)
        at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:100)
        at org.hibernate.connection.DriverManagerConnectionProvider.configure(DriverManagerConnectionProvider.java:61)
        at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:124)
        at org.hibernate.ejb.InjectionSettingsFactory.createConnectionProvider(InjectionSettingsFactory.java:29)
        at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:62)
        at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2009)
        at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1292)
        at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)
        at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:669)
        at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:126)
        at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:110)
        at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:83)
        at br.com.peres.jpa.TheClassApp.main(TheClassApp.java:20)
04/04/2010 01:53:59 org.hibernate.connection.DriverManagerConnectionProvider close
INFO: cleaning up connection pool: null
Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named PeresPersistenceUnit: Provider named org.hibernate.ejb.HibernatePersistence threw unexpected exception at create EntityManagerFactory: 
javax.persistence.PersistenceException
javax.persistence.PersistenceException: [PersistenceUnit: PeresPersistenceUnit] Unable to build EntityManagerFactory
        at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:677)
        at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:126)
        at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:110)
        at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:83)
        at br.com.peres.jpa.TheClassApp.main(TheClassApp.java:20)
Caused by: org.hibernate.HibernateException: JDBC Driver class not found: org.apache.derby.jdbc.ClientDriver
        at org.hibernate.connection.DriverManagerConnectionProvider.configure(DriverManagerConnectionProvider.java:66)
        at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:124)
        at org.hibernate.ejb.InjectionSettingsFactory.createConnectionProvider(InjectionSettingsFactory.java:29)
        at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:62)
        at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2009)
        at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1292)
        at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)
        at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:669)
        ... 4 more
Caused by: java.lang.ClassNotFoundException: org.apache.derby.jdbc.ClientDriver
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:169)
        at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:100)
        at org.hibernate.connection.DriverManagerConnectionProvider.configure(DriverManagerConnectionProvider.java:61)
        ... 11 more


 The following providers:
oracle.toplink.essentials.PersistenceProvider
oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider
Returned null to createEntityManagerFactory.

        at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:154)
        at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:83)
        at br.com.peres.jpa.TheClassApp.main(TheClassApp.java:20)
Java Result: 1
CONSTRUÍDO COM SUCESSO (tempo total: 1 segundo)

O problema é já detectei que é o Driver Java DB.

Como já disse antes estou usando a IDE Netbeans 6.8 e quando vou adicionar a biblioteca não consigo achar o driver.

Algué poderia me ajudar adicionar na biblioteca o Driver Java DB?

H

Olá. Nunca usei o javaDB e também não uso o netbeans. Você quer baixar o driver ou já tem ele na sua máquina?

Se quer baixar você pode encontrar aqui:
http://db.apache.org/derby/releases/release-10.5.1.1.html

Criado 3 de abril de 2010
Ultima resposta 4 de abr. de 2010
Respostas 4
Participantes 2