public void create(TipoEstadoNormatividad tipoEstadoNormatividad) throws PreexistingEntityException, Exception { if (tipoEstadoNormatividad.getNormatividadList() == null) { tipoEstadoNormatividad.setNormatividadList(new ArrayList<Normatividad>()); } if (tipoEstadoNormatividad.getSeguimientoNormatividadList() == null) { tipoEstadoNormatividad.setSeguimientoNormatividadList( new ArrayList<SeguimientoNormatividad>()); } EntityManager em = null; try { em = getEntityManager(); em.getTransaction().begin(); List<Normatividad> attachedNormatividadList = new ArrayList<Normatividad>(); for (Normatividad normatividadListNormatividadToAttach : tipoEstadoNormatividad.getNormatividadList()) { normatividadListNormatividadToAttach = em.getReference( normatividadListNormatividadToAttach.getClass(), normatividadListNormatividadToAttach.getId()); attachedNormatividadList.add(normatividadListNormatividadToAttach); } tipoEstadoNormatividad.setNormatividadList(attachedNormatividadList); List<SeguimientoNormatividad> attachedSeguimientoNormatividadList = new ArrayList<SeguimientoNormatividad>(); for (SeguimientoNormatividad seguimientoNormatividadListSeguimientoNormatividadToAttach : tipoEstadoNormatividad.getSeguimientoNormatividadList()) { seguimientoNormatividadListSeguimientoNormatividadToAttach = em.getReference( seguimientoNormatividadListSeguimientoNormatividadToAttach.getClass(), seguimientoNormatividadListSeguimientoNormatividadToAttach.getId()); attachedSeguimientoNormatividadList.add( seguimientoNormatividadListSeguimientoNormatividadToAttach); } tipoEstadoNormatividad.setSeguimientoNormatividadList(attachedSeguimientoNormatividadList); em.persist(tipoEstadoNormatividad); for (Normatividad normatividadListNormatividad : tipoEstadoNormatividad.getNormatividadList()) { TipoEstadoNormatividad oldIdEstadoOfNormatividadListNormatividad = normatividadListNormatividad.getIdEstado(); normatividadListNormatividad.setIdEstado(tipoEstadoNormatividad); normatividadListNormatividad = em.merge(normatividadListNormatividad); if (oldIdEstadoOfNormatividadListNormatividad != null) { oldIdEstadoOfNormatividadListNormatividad .getNormatividadList() .remove(normatividadListNormatividad); oldIdEstadoOfNormatividadListNormatividad = em.merge(oldIdEstadoOfNormatividadListNormatividad); } } for (SeguimientoNormatividad seguimientoNormatividadListSeguimientoNormatividad : tipoEstadoNormatividad.getSeguimientoNormatividadList()) { TipoEstadoNormatividad oldIdEstadoOfSeguimientoNormatividadListSeguimientoNormatividad = seguimientoNormatividadListSeguimientoNormatividad.getIdEstado(); seguimientoNormatividadListSeguimientoNormatividad.setIdEstado(tipoEstadoNormatividad); seguimientoNormatividadListSeguimientoNormatividad = em.merge(seguimientoNormatividadListSeguimientoNormatividad); if (oldIdEstadoOfSeguimientoNormatividadListSeguimientoNormatividad != null) { oldIdEstadoOfSeguimientoNormatividadListSeguimientoNormatividad .getSeguimientoNormatividadList() .remove(seguimientoNormatividadListSeguimientoNormatividad); oldIdEstadoOfSeguimientoNormatividadListSeguimientoNormatividad = em.merge(oldIdEstadoOfSeguimientoNormatividadListSeguimientoNormatividad); } } em.getTransaction().commit(); } catch (Exception ex) { if (findTipoEstadoNormatividad(tipoEstadoNormatividad.getId()) != null) { throw new PreexistingEntityException( "TipoEstadoNormatividad " + tipoEstadoNormatividad + " already exists.", ex); } throw ex; } finally { if (em != null) { em.close(); } } }
public void edit(TipoEstadoNormatividad tipoEstadoNormatividad) throws NonexistentEntityException, Exception { EntityManager em = null; try { em = getEntityManager(); em.getTransaction().begin(); TipoEstadoNormatividad persistentTipoEstadoNormatividad = em.find(TipoEstadoNormatividad.class, tipoEstadoNormatividad.getId()); List<Normatividad> normatividadListOld = persistentTipoEstadoNormatividad.getNormatividadList(); List<Normatividad> normatividadListNew = tipoEstadoNormatividad.getNormatividadList(); List<SeguimientoNormatividad> seguimientoNormatividadListOld = persistentTipoEstadoNormatividad.getSeguimientoNormatividadList(); List<SeguimientoNormatividad> seguimientoNormatividadListNew = tipoEstadoNormatividad.getSeguimientoNormatividadList(); List<Normatividad> attachedNormatividadListNew = new ArrayList<Normatividad>(); for (Normatividad normatividadListNewNormatividadToAttach : normatividadListNew) { normatividadListNewNormatividadToAttach = em.getReference( normatividadListNewNormatividadToAttach.getClass(), normatividadListNewNormatividadToAttach.getId()); attachedNormatividadListNew.add(normatividadListNewNormatividadToAttach); } normatividadListNew = attachedNormatividadListNew; tipoEstadoNormatividad.setNormatividadList(normatividadListNew); List<SeguimientoNormatividad> attachedSeguimientoNormatividadListNew = new ArrayList<SeguimientoNormatividad>(); for (SeguimientoNormatividad seguimientoNormatividadListNewSeguimientoNormatividadToAttach : seguimientoNormatividadListNew) { seguimientoNormatividadListNewSeguimientoNormatividadToAttach = em.getReference( seguimientoNormatividadListNewSeguimientoNormatividadToAttach.getClass(), seguimientoNormatividadListNewSeguimientoNormatividadToAttach.getId()); attachedSeguimientoNormatividadListNew.add( seguimientoNormatividadListNewSeguimientoNormatividadToAttach); } seguimientoNormatividadListNew = attachedSeguimientoNormatividadListNew; tipoEstadoNormatividad.setSeguimientoNormatividadList(seguimientoNormatividadListNew); tipoEstadoNormatividad = em.merge(tipoEstadoNormatividad); for (Normatividad normatividadListOldNormatividad : normatividadListOld) { if (!normatividadListNew.contains(normatividadListOldNormatividad)) { normatividadListOldNormatividad.setIdEstado(null); normatividadListOldNormatividad = em.merge(normatividadListOldNormatividad); } } for (Normatividad normatividadListNewNormatividad : normatividadListNew) { if (!normatividadListOld.contains(normatividadListNewNormatividad)) { TipoEstadoNormatividad oldIdEstadoOfNormatividadListNewNormatividad = normatividadListNewNormatividad.getIdEstado(); normatividadListNewNormatividad.setIdEstado(tipoEstadoNormatividad); normatividadListNewNormatividad = em.merge(normatividadListNewNormatividad); if (oldIdEstadoOfNormatividadListNewNormatividad != null && !oldIdEstadoOfNormatividadListNewNormatividad.equals(tipoEstadoNormatividad)) { oldIdEstadoOfNormatividadListNewNormatividad .getNormatividadList() .remove(normatividadListNewNormatividad); oldIdEstadoOfNormatividadListNewNormatividad = em.merge(oldIdEstadoOfNormatividadListNewNormatividad); } } } for (SeguimientoNormatividad seguimientoNormatividadListOldSeguimientoNormatividad : seguimientoNormatividadListOld) { if (!seguimientoNormatividadListNew.contains( seguimientoNormatividadListOldSeguimientoNormatividad)) { seguimientoNormatividadListOldSeguimientoNormatividad.setIdEstado(null); seguimientoNormatividadListOldSeguimientoNormatividad = em.merge(seguimientoNormatividadListOldSeguimientoNormatividad); } } for (SeguimientoNormatividad seguimientoNormatividadListNewSeguimientoNormatividad : seguimientoNormatividadListNew) { if (!seguimientoNormatividadListOld.contains( seguimientoNormatividadListNewSeguimientoNormatividad)) { TipoEstadoNormatividad oldIdEstadoOfSeguimientoNormatividadListNewSeguimientoNormatividad = seguimientoNormatividadListNewSeguimientoNormatividad.getIdEstado(); seguimientoNormatividadListNewSeguimientoNormatividad.setIdEstado(tipoEstadoNormatividad); seguimientoNormatividadListNewSeguimientoNormatividad = em.merge(seguimientoNormatividadListNewSeguimientoNormatividad); if (oldIdEstadoOfSeguimientoNormatividadListNewSeguimientoNormatividad != null && !oldIdEstadoOfSeguimientoNormatividadListNewSeguimientoNormatividad.equals( tipoEstadoNormatividad)) { oldIdEstadoOfSeguimientoNormatividadListNewSeguimientoNormatividad .getSeguimientoNormatividadList() .remove(seguimientoNormatividadListNewSeguimientoNormatividad); oldIdEstadoOfSeguimientoNormatividadListNewSeguimientoNormatividad = em.merge(oldIdEstadoOfSeguimientoNormatividadListNewSeguimientoNormatividad); } } } em.getTransaction().commit(); } catch (Exception ex) { String msg = ex.getLocalizedMessage(); if (msg == null || msg.length() == 0) { Integer id = tipoEstadoNormatividad.getId(); if (findTipoEstadoNormatividad(id) == null) { throw new NonexistentEntityException( "The tipoEstadoNormatividad with id " + id + " no longer exists."); } } throw ex; } finally { if (em != null) { em.close(); } } }