Exemplo n.º 1
0
 public void create(Beneficiario beneficiario) throws PreexistingEntityException, Exception {
   if (beneficiario.getCotizanteList() == null) {
     beneficiario.setCotizanteList(new ArrayList<Cotizante>());
   }
   EntityManager em = null;
   try {
     em = getEntityManager();
     em.getTransaction().begin();
     List<Cotizante> attachedCotizanteList = new ArrayList<Cotizante>();
     for (Cotizante cotizanteListCotizanteToAttach : beneficiario.getCotizanteList()) {
       cotizanteListCotizanteToAttach =
           em.getReference(
               cotizanteListCotizanteToAttach.getClass(),
               cotizanteListCotizanteToAttach.getCedula());
       attachedCotizanteList.add(cotizanteListCotizanteToAttach);
     }
     beneficiario.setCotizanteList(attachedCotizanteList);
     em.persist(beneficiario);
     for (Cotizante cotizanteListCotizante : beneficiario.getCotizanteList()) {
       cotizanteListCotizante.getBeneficiarioList().add(beneficiario);
       cotizanteListCotizante = em.merge(cotizanteListCotizante);
     }
     em.getTransaction().commit();
   } catch (Exception ex) {
     if (findBeneficiario(beneficiario.getIDBeneficiario()) != null) {
       throw new PreexistingEntityException(
           "Beneficiario " + beneficiario + " already exists.", ex);
     }
     throw ex;
   } finally {
     if (em != null) {
       em.close();
     }
   }
 }
Exemplo n.º 2
0
 public void edit(Beneficiario beneficiario) throws NonexistentEntityException, Exception {
   EntityManager em = null;
   try {
     em = getEntityManager();
     em.getTransaction().begin();
     Beneficiario persistentBeneficiario =
         em.find(Beneficiario.class, beneficiario.getIDBeneficiario());
     List<Cotizante> cotizanteListOld = persistentBeneficiario.getCotizanteList();
     List<Cotizante> cotizanteListNew = beneficiario.getCotizanteList();
     List<Cotizante> attachedCotizanteListNew = new ArrayList<Cotizante>();
     for (Cotizante cotizanteListNewCotizanteToAttach : cotizanteListNew) {
       cotizanteListNewCotizanteToAttach =
           em.getReference(
               cotizanteListNewCotizanteToAttach.getClass(),
               cotizanteListNewCotizanteToAttach.getCedula());
       attachedCotizanteListNew.add(cotizanteListNewCotizanteToAttach);
     }
     cotizanteListNew = attachedCotizanteListNew;
     beneficiario.setCotizanteList(cotizanteListNew);
     beneficiario = em.merge(beneficiario);
     for (Cotizante cotizanteListOldCotizante : cotizanteListOld) {
       if (!cotizanteListNew.contains(cotizanteListOldCotizante)) {
         cotizanteListOldCotizante.getBeneficiarioList().remove(beneficiario);
         cotizanteListOldCotizante = em.merge(cotizanteListOldCotizante);
       }
     }
     for (Cotizante cotizanteListNewCotizante : cotizanteListNew) {
       if (!cotizanteListOld.contains(cotizanteListNewCotizante)) {
         cotizanteListNewCotizante.getBeneficiarioList().add(beneficiario);
         cotizanteListNewCotizante = em.merge(cotizanteListNewCotizante);
       }
     }
     em.getTransaction().commit();
   } catch (Exception ex) {
     String msg = ex.getLocalizedMessage();
     if (msg == null || msg.length() == 0) {
       String id = beneficiario.getIDBeneficiario();
       if (findBeneficiario(id) == null) {
         throw new NonexistentEntityException(
             "The beneficiario with id " + id + " no longer exists.");
       }
     }
     throw ex;
   } finally {
     if (em != null) {
       em.close();
     }
   }
 }