public void create(Configdecripcionlogin configdecripcionlogin) {
   if (configdecripcionlogin.getInfoHistoriac() == null) {
     configdecripcionlogin.setInfoHistoriac(new ArrayList<InfoHistoriac>());
   }
   EntityManager em = null;
   try {
     em = getEntityManager();
     em.getTransaction().begin();
     Configlogin idLogin = configdecripcionlogin.getIdLogin();
     if (idLogin != null) {
       idLogin = em.getReference(idLogin.getClass(), idLogin.getId());
       configdecripcionlogin.setIdLogin(idLogin);
     }
     List<InfoHistoriac> attachedInfoHistoriac = new ArrayList<InfoHistoriac>();
     for (InfoHistoriac infoHistoriacInfoHistoriacToAttach :
         configdecripcionlogin.getInfoHistoriac()) {
       infoHistoriacInfoHistoriacToAttach =
           em.getReference(
               infoHistoriacInfoHistoriacToAttach.getClass(),
               infoHistoriacInfoHistoriacToAttach.getId());
       attachedInfoHistoriac.add(infoHistoriacInfoHistoriacToAttach);
     }
     configdecripcionlogin.setInfoHistoriac(attachedInfoHistoriac);
     em.persist(configdecripcionlogin);
     if (idLogin != null) {
       idLogin.getConfigdecripcionloginList().add(configdecripcionlogin);
       idLogin = em.merge(idLogin);
     }
     for (InfoHistoriac infoHistoriacInfoHistoriac : configdecripcionlogin.getInfoHistoriac()) {
       Configdecripcionlogin oldIdConfigdecripcionloginOfInfoHistoriacInfoHistoriac =
           infoHistoriacInfoHistoriac.getIdConfigdecripcionlogin();
       infoHistoriacInfoHistoriac.setIdConfigdecripcionlogin(configdecripcionlogin);
       infoHistoriacInfoHistoriac = em.merge(infoHistoriacInfoHistoriac);
       if (oldIdConfigdecripcionloginOfInfoHistoriacInfoHistoriac != null) {
         oldIdConfigdecripcionloginOfInfoHistoriacInfoHistoriac
             .getInfoHistoriac()
             .remove(infoHistoriacInfoHistoriac);
         oldIdConfigdecripcionloginOfInfoHistoriacInfoHistoriac =
             em.merge(oldIdConfigdecripcionloginOfInfoHistoriacInfoHistoriac);
       }
     }
     em.getTransaction().commit();
   } finally {
     if (em != null) {
       em.close();
     }
   }
 }
 public void edit(Configdecripcionlogin configdecripcionlogin)
     throws IllegalOrphanException, NonexistentEntityException, Exception {
   EntityManager em = null;
   try {
     em = getEntityManager();
     em.getTransaction().begin();
     Configdecripcionlogin persistentConfigdecripcionlogin =
         em.find(Configdecripcionlogin.class, configdecripcionlogin.getId());
     Configlogin idLoginOld = persistentConfigdecripcionlogin.getIdLogin();
     Configlogin idLoginNew = configdecripcionlogin.getIdLogin();
     List<InfoHistoriac> infoHistoriacOld = persistentConfigdecripcionlogin.getInfoHistoriac();
     List<InfoHistoriac> infoHistoriacNew = configdecripcionlogin.getInfoHistoriac();
     List<String> illegalOrphanMessages = null;
     for (InfoHistoriac infoHistoriacOldInfoHistoriac : infoHistoriacOld) {
       if (!infoHistoriacNew.contains(infoHistoriacOldInfoHistoriac)) {
         if (illegalOrphanMessages == null) {
           illegalOrphanMessages = new ArrayList<String>();
         }
         illegalOrphanMessages.add(
             "You must retain InfoHistoriac "
                 + infoHistoriacOldInfoHistoriac
                 + " since its idConfigdecripcionlogin field is not nullable.");
       }
     }
     if (illegalOrphanMessages != null) {
       throw new IllegalOrphanException(illegalOrphanMessages);
     }
     if (idLoginNew != null) {
       idLoginNew = em.getReference(idLoginNew.getClass(), idLoginNew.getId());
       configdecripcionlogin.setIdLogin(idLoginNew);
     }
     List<InfoHistoriac> attachedInfoHistoriacNew = new ArrayList<InfoHistoriac>();
     for (InfoHistoriac infoHistoriacNewInfoHistoriacToAttach : infoHistoriacNew) {
       infoHistoriacNewInfoHistoriacToAttach =
           em.getReference(
               infoHistoriacNewInfoHistoriacToAttach.getClass(),
               infoHistoriacNewInfoHistoriacToAttach.getId());
       attachedInfoHistoriacNew.add(infoHistoriacNewInfoHistoriacToAttach);
     }
     infoHistoriacNew = attachedInfoHistoriacNew;
     configdecripcionlogin.setInfoHistoriac(infoHistoriacNew);
     configdecripcionlogin = em.merge(configdecripcionlogin);
     if (idLoginOld != null && !idLoginOld.equals(idLoginNew)) {
       idLoginOld.getConfigdecripcionloginList().remove(configdecripcionlogin);
       idLoginOld = em.merge(idLoginOld);
     }
     if (idLoginNew != null && !idLoginNew.equals(idLoginOld)) {
       idLoginNew.getConfigdecripcionloginList().add(configdecripcionlogin);
       idLoginNew = em.merge(idLoginNew);
     }
     for (InfoHistoriac infoHistoriacNewInfoHistoriac : infoHistoriacNew) {
       if (!infoHistoriacOld.contains(infoHistoriacNewInfoHistoriac)) {
         Configdecripcionlogin oldIdConfigdecripcionloginOfInfoHistoriacNewInfoHistoriac =
             infoHistoriacNewInfoHistoriac.getIdConfigdecripcionlogin();
         infoHistoriacNewInfoHistoriac.setIdConfigdecripcionlogin(configdecripcionlogin);
         infoHistoriacNewInfoHistoriac = em.merge(infoHistoriacNewInfoHistoriac);
         if (oldIdConfigdecripcionloginOfInfoHistoriacNewInfoHistoriac != null
             && !oldIdConfigdecripcionloginOfInfoHistoriacNewInfoHistoriac.equals(
                 configdecripcionlogin)) {
           oldIdConfigdecripcionloginOfInfoHistoriacNewInfoHistoriac
               .getInfoHistoriac()
               .remove(infoHistoriacNewInfoHistoriac);
           oldIdConfigdecripcionloginOfInfoHistoriacNewInfoHistoriac =
               em.merge(oldIdConfigdecripcionloginOfInfoHistoriacNewInfoHistoriac);
         }
       }
     }
     em.getTransaction().commit();
   } catch (Exception ex) {
     String msg = ex.getLocalizedMessage();
     if (msg == null || msg.length() == 0) {
       Integer id = configdecripcionlogin.getId();
       if (findConfigdecripcionlogin(id) == null) {
         throw new NonexistentEntityException(
             "The configdecripcionlogin with id " + id + " no longer exists.");
       }
     }
     throw ex;
   } finally {
     if (em != null) {
       em.close();
     }
   }
 }