public void create(CmProfesionales cmProfesionales) {
        if (cmProfesionales.getPypAdmControlProfesionalesList() == null) {
            cmProfesionales.setPypAdmControlProfesionalesList(new ArrayList<PypAdmControlProfesionales>());
        }
        EntityManager em = null;
        try {
            em = getEntityManager();
            em.getTransaction().begin();
            ConfigDecripcionLogin idDescripcionLogin = cmProfesionales.getIdDescripcionLogin();
            if (idDescripcionLogin != null) {
                idDescripcionLogin = em.getReference(idDescripcionLogin.getClass(), idDescripcionLogin.getId());
                cmProfesionales.setIdDescripcionLogin(idDescripcionLogin);
            }
            List<PypAdmControlProfesionales> attachedPypAdmControlProfesionalesList = new ArrayList<PypAdmControlProfesionales>();
            for (PypAdmControlProfesionales pypAdmControlProfesionalesListPypAdmControlProfesionalesToAttach : cmProfesionales.getPypAdmControlProfesionalesList()) {
                pypAdmControlProfesionalesListPypAdmControlProfesionalesToAttach = em.getReference(pypAdmControlProfesionalesListPypAdmControlProfesionalesToAttach.getClass(), pypAdmControlProfesionalesListPypAdmControlProfesionalesToAttach.getId());
                attachedPypAdmControlProfesionalesList.add(pypAdmControlProfesionalesListPypAdmControlProfesionalesToAttach);
            }
            cmProfesionales.setPypAdmControlProfesionalesList(attachedPypAdmControlProfesionalesList);
            em.persist(cmProfesionales);
            if (idDescripcionLogin != null) {
                idDescripcionLogin.getCmProfesionalesList().add(cmProfesionales);
                idDescripcionLogin = em.merge(idDescripcionLogin);
            }
            for (PypAdmControlProfesionales pypAdmControlProfesionalesListPypAdmControlProfesionales : cmProfesionales.getPypAdmControlProfesionalesList()) {
                CmProfesionales oldIdProfesionalOfPypAdmControlProfesionalesListPypAdmControlProfesionales = pypAdmControlProfesionalesListPypAdmControlProfesionales.getIdProfesional();
                pypAdmControlProfesionalesListPypAdmControlProfesionales.setIdProfesional(cmProfesionales);
                pypAdmControlProfesionalesListPypAdmControlProfesionales = em.merge(pypAdmControlProfesionalesListPypAdmControlProfesionales);
                if (oldIdProfesionalOfPypAdmControlProfesionalesListPypAdmControlProfesionales != null) {
                    oldIdProfesionalOfPypAdmControlProfesionalesListPypAdmControlProfesionales.getPypAdmControlProfesionalesList().remove(pypAdmControlProfesionalesListPypAdmControlProfesionales);
                    oldIdProfesionalOfPypAdmControlProfesionalesListPypAdmControlProfesionales = em.merge(oldIdProfesionalOfPypAdmControlProfesionalesListPypAdmControlProfesionales);
                }
            }
            em.getTransaction().commit();
        } finally {
            if (em != null) {
                em.close();
            }
        }
    }