public void destroy(Integer id) throws IllegalOrphanException, NonexistentEntityException {
   EntityManager em = null;
   try {
     em = getEntityManager();
     em.getTransaction().begin();
     Clientes clientes;
     try {
       clientes = em.getReference(Clientes.class, id);
       clientes.getIdClientes();
     } catch (EntityNotFoundException enfe) {
       throw new NonexistentEntityException(
           "The clientes with id " + id + " no longer exists.", enfe);
     }
     List<String> illegalOrphanMessages = null;
     Collection<Reservaciones> reservacionesCollectionOrphanCheck =
         clientes.getReservacionesCollection();
     for (Reservaciones reservacionesCollectionOrphanCheckReservaciones :
         reservacionesCollectionOrphanCheck) {
       if (illegalOrphanMessages == null) {
         illegalOrphanMessages = new ArrayList<String>();
       }
       illegalOrphanMessages.add(
           "This Clientes ("
               + clientes
               + ") cannot be destroyed since the Reservaciones "
               + reservacionesCollectionOrphanCheckReservaciones
               + " in its reservacionesCollection field has a non-nullable clientes field.");
     }
     if (illegalOrphanMessages != null) {
       throw new IllegalOrphanException(illegalOrphanMessages);
     }
     em.remove(clientes);
     em.getTransaction().commit();
   } finally {
     if (em != null) {
       em.close();
     }
   }
 }
  public void edit(Clientes clientes)
      throws IllegalOrphanException, NonexistentEntityException, Exception {
    EntityManager em = null;
    try {
      em = getEntityManager();
      em.getTransaction().begin();
      Clientes persistentClientes = em.find(Clientes.class, clientes.getIdClientes());
      Collection<Reservaciones> reservacionesCollectionOld =
          persistentClientes.getReservacionesCollection();
      Collection<Reservaciones> reservacionesCollectionNew = clientes.getReservacionesCollection();
      List<String> illegalOrphanMessages = null;
      for (Reservaciones reservacionesCollectionOldReservaciones : reservacionesCollectionOld) {
        if (!reservacionesCollectionNew.contains(reservacionesCollectionOldReservaciones)) {
          if (illegalOrphanMessages == null) {
            illegalOrphanMessages = new ArrayList<String>();
          }
          illegalOrphanMessages.add(
              "You must retain Reservaciones "
                  + reservacionesCollectionOldReservaciones
                  + " since its clientes field is not nullable.");
        }
      }

      if (illegalOrphanMessages != null) {
        throw new IllegalOrphanException(illegalOrphanMessages);
      }
      Collection<Reservaciones> attachedReservacionesCollectionNew = new ArrayList<Reservaciones>();

      // Cambio

      if (reservacionesCollectionNew != null) {
        for (Reservaciones reservacionesCollectionNewReservacionesToAttach :
            reservacionesCollectionNew) {
          reservacionesCollectionNewReservacionesToAttach =
              em.getReference(
                  reservacionesCollectionNewReservacionesToAttach.getClass(),
                  reservacionesCollectionNewReservacionesToAttach.getReservacionesPK(
                      new ReservacionesPK()));
          attachedReservacionesCollectionNew.add(reservacionesCollectionNewReservacionesToAttach);
        }
      }
      reservacionesCollectionNew = attachedReservacionesCollectionNew;
      clientes.setReservacionesCollection(reservacionesCollectionNew);
      clientes = em.merge(clientes);
      // Cambio

      if (reservacionesCollectionNew != null) {
        for (Reservaciones reservacionesCollectionNewReservaciones : reservacionesCollectionNew) {
          if (!reservacionesCollectionOld.contains(reservacionesCollectionNewReservaciones)) {
            Clientes oldClientesOfReservacionesCollectionNewReservaciones =
                reservacionesCollectionNewReservaciones.getClientes();
            reservacionesCollectionNewReservaciones.setClientes(clientes);
            reservacionesCollectionNewReservaciones =
                em.merge(reservacionesCollectionNewReservaciones);
            if (oldClientesOfReservacionesCollectionNewReservaciones != null
                && !oldClientesOfReservacionesCollectionNewReservaciones.equals(clientes)) {
              oldClientesOfReservacionesCollectionNewReservaciones
                  .getReservacionesCollection()
                  .remove(reservacionesCollectionNewReservaciones);
              oldClientesOfReservacionesCollectionNewReservaciones =
                  em.merge(oldClientesOfReservacionesCollectionNewReservaciones);
            }
          }
        }
      }
      em.getTransaction().commit();
    } catch (Exception ex) {
      String msg = ex.getLocalizedMessage();
      if (msg == null || msg.length() == 0) {
        Integer id = clientes.getIdClientes();
        if (findClientes(id) == null) {
          throw new NonexistentEntityException("The clientes with id " + id + " no longer exists.");
        }
      }
      throw ex;
    } finally {
      if (em != null) {
        em.close();
      }
    }
  }