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(); } } }