public void destroy(Integer id) throws NonexistentEntityException {
   EntityManager em = null;
   try {
     em = getEntityManager();
     em.getTransaction().begin();
     ProgramaExigePapelPessoa programaExigePapelPessoa;
     try {
       programaExigePapelPessoa = em.getReference(ProgramaExigePapelPessoa.class, id);
       programaExigePapelPessoa.getPexCodigo();
     } catch (EntityNotFoundException enfe) {
       throw new NonexistentEntityException(
           "The programaExigePapelPessoa with id " + id + " no longer exists.", enfe);
     }
     Programa proCodigo = programaExigePapelPessoa.getProCodigo();
     if (proCodigo != null) {
       proCodigo.getProgramaExigePapelPessoaList().remove(programaExigePapelPessoa);
       proCodigo = em.merge(proCodigo);
     }
     em.remove(programaExigePapelPessoa);
     em.getTransaction().commit();
   } finally {
     if (em != null) {
       em.close();
     }
   }
 }
 public void create(ProgramaExigePapelPessoa programaExigePapelPessoa) {
   EntityManager em = null;
   try {
     em = getEntityManager();
     em.getTransaction().begin();
     Programa proCodigo = programaExigePapelPessoa.getProCodigo();
     if (proCodigo != null) {
       proCodigo = em.getReference(proCodigo.getClass(), proCodigo.getProCodigo());
       programaExigePapelPessoa.setProCodigo(proCodigo);
     }
     em.persist(programaExigePapelPessoa);
     if (proCodigo != null) {
       proCodigo.getProgramaExigePapelPessoaList().add(programaExigePapelPessoa);
       proCodigo = em.merge(proCodigo);
     }
     em.getTransaction().commit();
   } finally {
     if (em != null) {
       em.close();
     }
   }
 }
 public void edit(ProgramaExigePapelPessoa programaExigePapelPessoa)
     throws NonexistentEntityException, Exception {
   EntityManager em = null;
   try {
     em = getEntityManager();
     em.getTransaction().begin();
     ProgramaExigePapelPessoa persistentProgramaExigePapelPessoa =
         em.find(ProgramaExigePapelPessoa.class, programaExigePapelPessoa.getPexCodigo());
     Programa proCodigoOld = persistentProgramaExigePapelPessoa.getProCodigo();
     Programa proCodigoNew = programaExigePapelPessoa.getProCodigo();
     if (proCodigoNew != null) {
       proCodigoNew = em.getReference(proCodigoNew.getClass(), proCodigoNew.getProCodigo());
       programaExigePapelPessoa.setProCodigo(proCodigoNew);
     }
     programaExigePapelPessoa = em.merge(programaExigePapelPessoa);
     if (proCodigoOld != null && !proCodigoOld.equals(proCodigoNew)) {
       proCodigoOld.getProgramaExigePapelPessoaList().remove(programaExigePapelPessoa);
       proCodigoOld = em.merge(proCodigoOld);
     }
     if (proCodigoNew != null && !proCodigoNew.equals(proCodigoOld)) {
       proCodigoNew.getProgramaExigePapelPessoaList().add(programaExigePapelPessoa);
       proCodigoNew = em.merge(proCodigoNew);
     }
     em.getTransaction().commit();
   } catch (Exception ex) {
     String msg = ex.getLocalizedMessage();
     if (msg == null || msg.length() == 0) {
       Integer id = programaExigePapelPessoa.getPexCodigo();
       if (findProgramaExigePapelPessoa(id) == null) {
         throw new NonexistentEntityException(
             "The programaExigePapelPessoa with id " + id + " no longer exists.");
       }
     }
     throw ex;
   } finally {
     if (em != null) {
       em.close();
     }
   }
 }