public void destroy(Integer id) throws NonexistentEntityException { EntityManager em = null; try { em = getEntityManager(); em.getTransaction().begin(); Clasedatos clasedatos; try { clasedatos = em.getReference(Clasedatos.class, id); clasedatos.getId(); } catch (EntityNotFoundException enfe) { throw new NonexistentEntityException( "The clasedatos with id " + id + " no longer exists.", enfe); } Entidad entidadId = clasedatos.getEntidadId(); if (entidadId != null) { entidadId.getClasedatosList().remove(clasedatos); entidadId = em.merge(entidadId); } List<Procesos> procesosList = clasedatos.getProcesosList(); for (Procesos procesosListProcesos : procesosList) { procesosListProcesos.getClasedatosList().remove(clasedatos); procesosListProcesos = em.merge(procesosListProcesos); } em.remove(clasedatos); em.getTransaction().commit(); } finally { if (em != null) { em.close(); } } }
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(); } } }