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
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.