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