JPA Instanciação

Gostaria de uma ajuda por favor,

eu tenho um banco criado, logo em seguida criei no netbeans as "Classes de Entidade de Banco de Dados"
e logo em seguida criei o controlador JPA, quando vou declarar um variavel UsuarioJpaController , ele pede um parametro que seria um EMF, o que eu coloco ali aonde esta o “null” no meu exemplo?

Att.

Diego Honorio

O que seria um EMF?

Deve ser EntityManagerFactory.

Voçê deve informar EntityManangerFactory.
faça assim.

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

e no lugar do null voce coloca emf.

só lembrando “unitName” é o nome que vc deu à unidade de persistencia no arquivo persistence.xml

apareçe esse erro vou postar, o codigo da aplicação tambem.

ERRO /

GRAVE: Servlet.service() for servlet [ValidaLogin] in context with path [/WebApplication1] threw exception javax.persistence.PersistenceException: No Persistence provider for EntityManager named Usuario at javax.persistence.Persistence.createEntityManagerFactory(Unknown Source) at javax.persistence.Persistence.createEntityManagerFactory(Unknown Source) at persistencia.UsuarioJpaController.<init>(UsuarioJpaController.java:29) at Servlets.ValidaLogin.processRequest(ValidaLogin.java:64) at Servlets.ValidaLogin.doPost(ValidaLogin.java:138) at javax.servlet.http.HttpServlet.service(HttpServlet.java:641) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:304) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662)
Classe Jpa Controladora

[quote]/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */
    package persistencia;

import entidades.Usuario;
import java.io.Serializable;
import java.util.List;
import javax.persistence.*;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import persistencia.exceptions.NonexistentEntityException;
import persistencia.exceptions.PreexistingEntityException;

/**
*

  • @author Diego
    */
    public class UsuarioJpaController implements Serializable {

    public UsuarioJpaController(EntityManagerFactory emf) {
    this.emf = emf;
    }
    private EntityManagerFactory emf = null;

    public EntityManager getEntityManager() {
    return emf.createEntityManager();
    }

    public void create(Usuario usuario) throws PreexistingEntityException, Exception {
    EntityManager em = null;
    try {
    em = getEntityManager();
    em.getTransaction().begin();
    em.persist(usuario);
    em.getTransaction().commit();
    } catch (Exception ex) {
    if (findUsuario(usuario.getCodigo()) != null) {
    throw new PreexistingEntityException(“Usuario " + usuario + " already exists.”, ex);
    }
    throw ex;
    } finally {
    if (em != null) {
    em.close();
    }
    }
    }

    public void edit(Usuario usuario) throws NonexistentEntityException, Exception {
    EntityManager em = null;
    try {
    em = getEntityManager();
    em.getTransaction().begin();
    usuario = em.merge(usuario);
    em.getTransaction().commit();
    } catch (Exception ex) {
    String msg = ex.getLocalizedMessage();
    if (msg == null || msg.length() == 0) {
    Short id = usuario.getCodigo();
    if (findUsuario(id) == null) {
    throw new NonexistentEntityException(“The usuario with id " + id + " no longer exists.”);
    }
    }
    throw ex;
    } finally {
    if (em != null) {
    em.close();
    }
    }
    }

    public void destroy(Short id) throws NonexistentEntityException {
    EntityManager em = null;
    try {
    em = getEntityManager();
    em.getTransaction().begin();
    Usuario usuario;
    try {
    usuario = em.getReference(Usuario.class, id);
    usuario.getCodigo();
    } catch (EntityNotFoundException enfe) {
    throw new NonexistentEntityException(“The usuario with id " + id + " no longer exists.”, enfe);
    }
    em.remove(usuario);
    em.getTransaction().commit();
    } finally {
    if (em != null) {
    em.close();
    }
    }
    }

    public List findUsuarioEntities() {
    return findUsuarioEntities(true, -1, -1);
    }

    public List findUsuarioEntities(int maxResults, int firstResult) {
    return findUsuarioEntities(false, maxResults, firstResult);
    }

    private List findUsuarioEntities(boolean all, int maxResults, int firstResult) {
    EntityManager em = getEntityManager();
    try {
    CriteriaQuery cq = em.getCriteriaBuilder().createQuery();
    cq.select(cq.from(Usuario.class));
    Query q = em.createQuery(cq);
    if (!all) {
    q.setMaxResults(maxResults);
    q.setFirstResult(firstResult);
    }
    return q.getResultList();
    } finally {
    em.close();
    }
    }

    public Usuario findUsuario(Short id) {
    EntityManager em = getEntityManager();
    try {
    return em.find(Usuario.class, id);
    } finally {
    em.close();
    }
    }

    public int getUsuarioCount() {
    EntityManager em = getEntityManager();
    try {
    CriteriaQuery cq = em.getCriteriaBuilder().createQuery();
    Root rt = cq.from(Usuario.class);
    cq.select(em.getCriteriaBuilder().count(rt));
    Query q = em.createQuery(cq);
    return ((Long) q.getSingleResult()).intValue();
    } finally {
    em.close();
    }
    }

}
[/quote]

se alguem poder entender e me dar uma força, nao to conseguindo do modo que vc citou acima ali elieber :/.

Att. Diego Honorio

Cara desculpe a demora, não sei se se vc já obteve a solução, coloca aí o seu persistence.xml e a parte do codigo onde vc chama a classe UsuarioJpaController, tipo acho que vc deve estar fazendo assim.

EntityManagerFactory emf = Persistence.createEntityManagerFactory("Usuario");
UsuarioJpaController user = new UsuarioJpaController(emf);

verifique se o seu persistence esta com o mesmo unitName que vc está passando, no seu caso é Usuario.
mas posta aí seu persistence.xml para gente ver.