JavaDabbaDoo.org -Tu comunidad Java parlante JPA - Visual Web JSF
Inicio | Cursos infosintesis.net liberados | Java EE | Consultar la tabla de los usuarios reg. con JPA y VW JSF
Consultar la tabla de los usuarios registrados con JPA y VW JSF
Paso 2: Operativa

Crear una Clases controladora JPA desde una Clase entidad

Una JPA Controller Class es una Clase que nos proporciona

Este es el código de la Clase controladora JPA UsuarioJpaController

package com.empresa.pojos.jpa;

import com.empresa.pojos.jpa.exceptions.NonexistentEntityException;
import com.empresa.pojos.jpa.exceptions.RollbackFailureException;
import java.util.List;
import javax.annotation.Resource;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.PersistenceUnit;
import javax.persistence.Query;
import javax.persistence.EntityNotFoundException;
import javax.transaction.UserTransaction;

public class UsuarioJpaController {
 @Resource
 private UserTransaction
utx = null;
 @PersistenceUnit(unitName = "condorPU")
 private EntityManagerFactory
emf = null;

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

 public void create(Usuario usuario) throws RollbackFailureException, Exception {
  EntityManager em = null;
  try {
   utx.begin();
   em = getEntityManager();
   em.persist(usuario);
   utx.commit();
  } catch (Exception ex) {
   try {
    utx.rollback();
   } catch (Exception re) {
    throw new RollbackFailureException("An error occurred attempting to roll back the     transaction.", re);
   }
   throw ex;
  } finally {
   if (em != null) {
    em.close();
   }
  }
 }

 public void edit(Usuario usuario) throws NonexistentEntityException,                                    RollbackFailureException, Exception {
  EntityManager em = null;
  try {
   utx.begin();
   em = getEntityManager();
   usuario = em.merge(usuario);
   utx.commit();
  } catch (Exception ex) {
   try {
    utx.rollback();
    } catch (Exception re) {
    throw new RollbackFailureException("An error occurred attempting to roll back the                                       transaction.", re);
    }
    String msg = ex.getLocalizedMessage();
    if (msg == null || msg.length() == 0) {
     Integer id = usuario.getIdUsuario();
     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(Integer id) throws NonexistentEntityException,   RollbackFailureException, Exception {
  EntityManager em = null;
  try {
   utx.begin();
   em = getEntityManager();
   Usuario usuario;
   try {
    usuario = em.getReference(Usuario.class, id);
    usuario.getIdUsuario();
   } catch (EntityNotFoundException enfe) {
    throw new NonexistentEntityException("The usuario with id " + id +
                                       " no longer exists.", enfe);
  }
  em.remove(usuario);
  utx.commit();
  } catch (Exception ex) {
   try {
    utx.rollback();
   } catch (Exception re) {
    throw new RollbackFailureException("An error occurred attempting to roll back the                                        transaction.", re);
   }
   throw ex;
   } finally {
   if (em != null) {
    em.close();
   }
  }
 }

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

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

 private List<Usuario> findUsuarioEntities(boolean all, int maxResults, int firstResult) {
  EntityManager em = getEntityManager();

  try {
   Query q = em.createQuery("select object(o) from Usuario as o");
   if (!all) {
    q.setMaxResults(maxResults);
    q.setFirstResult(firstResult);
   }
   return q.getResultList();
  } finally {
   em.close();
  }
 }

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

 public int getUsuarioCount() {
  EntityManager em = getEntityManager();
  try {
   return ((Long) em.createQuery("select count(o) from Usuario as                                  o").getSingleResult()).intValue();
  } finally {
   em.close();
  }
 }
}

Para crear la Clase controladora JPA UsuarioJpaController tenemos que hacer clic con el botón derecho sobre el proyecto proregusuariovwjsf y seleccionar New | Other...

En el cuadro de diálogo New File seleccionamos Persistence | JPA Controller Classes from Entity Classes y hacemos clic sobre el botón Next

NetBeans 6 - Crear una Clase controladora desde una Clase entidad - Persistence | JPA Controller Classes from Entity Classes

En el cuadro de diálogo New JPA Controller Classes from Entity Classes indicamos que la entidad de la cual queremos crear una Clase JPA controladora es com.empresa.pojos.Usuario

Una vez hemos seleccionado la Clase Usuario hacemos clic sobre el botón Add >

NetBeans 6 - Crear una Clase controladora desde una Clase entidad - Available Entity Classes | Add >

Ahora indicamos que el paquete donde queremos que se aloje la Clase que vamos a crear sea com.empresa.pojos.jpa

NetBeans 6 - Crear una Clase controladora desde una Clase entidad - Generate JPA Controller Classes

Para salir de este cuadro de diálogo hacemos clic sobre el botón Finish

Página anterior
Ignasi Pérez Valls
Infosintesis Solutions Group


Junio 2009
JavaDabbaDoo.org
Tu comunidad Java parlante. Cursos abiertos, tutoriales y mucho mucho más ...