Пример #1
0
 public void create(Clasedatos clasedatos) {
   if (clasedatos.getProcesosList() == null) {
     clasedatos.setProcesosList(new ArrayList<Procesos>());
   }
   EntityManager em = null;
   try {
     em = getEntityManager();
     em.getTransaction().begin();
     Entidad entidadId = clasedatos.getEntidadId();
     if (entidadId != null) {
       entidadId = em.getReference(entidadId.getClass(), entidadId.getId());
       clasedatos.setEntidadId(entidadId);
     }
     List<Procesos> attachedProcesosList = new ArrayList<Procesos>();
     for (Procesos procesosListProcesosToAttach : clasedatos.getProcesosList()) {
       procesosListProcesosToAttach =
           em.getReference(
               procesosListProcesosToAttach.getClass(), procesosListProcesosToAttach.getId());
       attachedProcesosList.add(procesosListProcesosToAttach);
     }
     clasedatos.setProcesosList(attachedProcesosList);
     em.persist(clasedatos);
     if (entidadId != null) {
       entidadId.getClasedatosList().add(clasedatos);
       entidadId = em.merge(entidadId);
     }
     for (Procesos procesosListProcesos : clasedatos.getProcesosList()) {
       procesosListProcesos.getClasedatosList().add(clasedatos);
       procesosListProcesos = em.merge(procesosListProcesos);
     }
     em.getTransaction().commit();
   } finally {
     if (em != null) {
       em.close();
     }
   }
 }
Пример #2
0
 public void edit(Clasedatos clasedatos) throws NonexistentEntityException, Exception {
   EntityManager em = null;
   try {
     em = getEntityManager();
     em.getTransaction().begin();
     Clasedatos persistentClasedatos = em.find(Clasedatos.class, clasedatos.getId());
     Entidad entidadIdOld = persistentClasedatos.getEntidadId();
     Entidad entidadIdNew = clasedatos.getEntidadId();
     List<Procesos> procesosListOld = persistentClasedatos.getProcesosList();
     List<Procesos> procesosListNew = clasedatos.getProcesosList();
     if (entidadIdNew != null) {
       entidadIdNew = em.getReference(entidadIdNew.getClass(), entidadIdNew.getId());
       clasedatos.setEntidadId(entidadIdNew);
     }
     List<Procesos> attachedProcesosListNew = new ArrayList<Procesos>();
     for (Procesos procesosListNewProcesosToAttach : procesosListNew) {
       procesosListNewProcesosToAttach =
           em.getReference(
               procesosListNewProcesosToAttach.getClass(),
               procesosListNewProcesosToAttach.getId());
       attachedProcesosListNew.add(procesosListNewProcesosToAttach);
     }
     procesosListNew = attachedProcesosListNew;
     clasedatos.setProcesosList(procesosListNew);
     clasedatos = em.merge(clasedatos);
     if (entidadIdOld != null && !entidadIdOld.equals(entidadIdNew)) {
       entidadIdOld.getClasedatosList().remove(clasedatos);
       entidadIdOld = em.merge(entidadIdOld);
     }
     if (entidadIdNew != null && !entidadIdNew.equals(entidadIdOld)) {
       entidadIdNew.getClasedatosList().add(clasedatos);
       entidadIdNew = em.merge(entidadIdNew);
     }
     for (Procesos procesosListOldProcesos : procesosListOld) {
       if (!procesosListNew.contains(procesosListOldProcesos)) {
         procesosListOldProcesos.getClasedatosList().remove(clasedatos);
         procesosListOldProcesos = em.merge(procesosListOldProcesos);
       }
     }
     for (Procesos procesosListNewProcesos : procesosListNew) {
       if (!procesosListOld.contains(procesosListNewProcesos)) {
         procesosListNewProcesos.getClasedatosList().add(clasedatos);
         procesosListNewProcesos = em.merge(procesosListNewProcesos);
       }
     }
     em.getTransaction().commit();
   } catch (Exception ex) {
     String msg = ex.getLocalizedMessage();
     if (msg == null || msg.length() == 0) {
       Integer id = clasedatos.getId();
       if (findClasedatos(id) == null) {
         throw new NonexistentEntityException(
             "The clasedatos with id " + id + " no longer exists.");
       }
     }
     throw ex;
   } finally {
     if (em != null) {
       em.close();
     }
   }
 }