public void create(Liquidacion liquidacion) { if (liquidacion.getDescripcionLiquidacionCollection() == null) { liquidacion.setDescripcionLiquidacionCollection(new ArrayList<DescripcionLiquidacion>()); } if (liquidacion.getProductoacambiarCollection() == null) { liquidacion.setProductoacambiarCollection(new ArrayList<ProductoaCambiar>()); } EntityManager em = null; try { em = getEntityManager(); em.getTransaction().begin(); Pedido pedidoIdpedido = liquidacion.getPedidoIdpedido(); if (pedidoIdpedido != null) { pedidoIdpedido = em.getReference(pedidoIdpedido.getClass(), pedidoIdpedido.getIdpedido()); liquidacion.setPedidoIdpedido(pedidoIdpedido); } Collection<DescripcionLiquidacion> attachedDescripcionLiquidacionCollection = new ArrayList<DescripcionLiquidacion>(); for (DescripcionLiquidacion descripcionLiquidacionCollectionDescripcionLiquidacionToAttach : liquidacion.getDescripcionLiquidacionCollection()) { descripcionLiquidacionCollectionDescripcionLiquidacionToAttach = em.getReference( descripcionLiquidacionCollectionDescripcionLiquidacionToAttach.getClass(), descripcionLiquidacionCollectionDescripcionLiquidacionToAttach .getIdDescripcionLiquidacion()); attachedDescripcionLiquidacionCollection.add( descripcionLiquidacionCollectionDescripcionLiquidacionToAttach); } liquidacion.setDescripcionLiquidacionCollection(attachedDescripcionLiquidacionCollection); Collection<ProductoaCambiar> attachedProductoacambiarCollection = new ArrayList<ProductoaCambiar>(); for (ProductoaCambiar productoacambiarCollectionProductoaCambiarToAttach : liquidacion.getProductoacambiarCollection()) { productoacambiarCollectionProductoaCambiarToAttach = em.getReference( productoacambiarCollectionProductoaCambiarToAttach.getClass(), productoacambiarCollectionProductoaCambiarToAttach.getIdproductoacambiar()); attachedProductoacambiarCollection.add(productoacambiarCollectionProductoaCambiarToAttach); } liquidacion.setProductoacambiarCollection(attachedProductoacambiarCollection); em.persist(liquidacion); if (pedidoIdpedido != null) { pedidoIdpedido.getLiquidacionCollection().add(liquidacion); pedidoIdpedido = em.merge(pedidoIdpedido); } for (DescripcionLiquidacion descripcionLiquidacionCollectionDescripcionLiquidacion : liquidacion.getDescripcionLiquidacionCollection()) { Liquidacion oldLiquidacionIdliquidacionOfDescripcionLiquidacionCollectionDescripcionLiquidacion = descripcionLiquidacionCollectionDescripcionLiquidacion .getLiquidacionIdliquidacion(); descripcionLiquidacionCollectionDescripcionLiquidacion.setLiquidacionIdliquidacion( liquidacion); descripcionLiquidacionCollectionDescripcionLiquidacion = em.merge(descripcionLiquidacionCollectionDescripcionLiquidacion); if (oldLiquidacionIdliquidacionOfDescripcionLiquidacionCollectionDescripcionLiquidacion != null) { oldLiquidacionIdliquidacionOfDescripcionLiquidacionCollectionDescripcionLiquidacion .getDescripcionLiquidacionCollection() .remove(descripcionLiquidacionCollectionDescripcionLiquidacion); oldLiquidacionIdliquidacionOfDescripcionLiquidacionCollectionDescripcionLiquidacion = em.merge( oldLiquidacionIdliquidacionOfDescripcionLiquidacionCollectionDescripcionLiquidacion); } } for (ProductoaCambiar productoacambiarCollectionProductoaCambiar : liquidacion.getProductoacambiarCollection()) { Liquidacion oldLiquidacionIdliquidacionOfProductoacambiarCollectionProductoaCambiar = productoacambiarCollectionProductoaCambiar.getLiquidacionIdliquidacion(); productoacambiarCollectionProductoaCambiar.setLiquidacionIdliquidacion(liquidacion); productoacambiarCollectionProductoaCambiar = em.merge(productoacambiarCollectionProductoaCambiar); if (oldLiquidacionIdliquidacionOfProductoacambiarCollectionProductoaCambiar != null) { oldLiquidacionIdliquidacionOfProductoacambiarCollectionProductoaCambiar .getProductoacambiarCollection() .remove(productoacambiarCollectionProductoaCambiar); oldLiquidacionIdliquidacionOfProductoacambiarCollectionProductoaCambiar = em.merge(oldLiquidacionIdliquidacionOfProductoacambiarCollectionProductoaCambiar); } } em.getTransaction().commit(); } finally { if (em != null) { em.close(); } } }
public void edit(Liquidacion liquidacion) throws IllegalOrphanException, NonexistentEntityException, Exception { EntityManager em = null; try { em = getEntityManager(); em.getTransaction().begin(); Liquidacion persistentLiquidacion = em.find(Liquidacion.class, liquidacion.getIdliquidacion()); Pedido pedidoIdpedidoOld = persistentLiquidacion.getPedidoIdpedido(); Pedido pedidoIdpedidoNew = liquidacion.getPedidoIdpedido(); Collection<DescripcionLiquidacion> descripcionLiquidacionCollectionOld = persistentLiquidacion.getDescripcionLiquidacionCollection(); Collection<DescripcionLiquidacion> descripcionLiquidacionCollectionNew = liquidacion.getDescripcionLiquidacionCollection(); Collection<ProductoaCambiar> productoacambiarCollectionOld = persistentLiquidacion.getProductoacambiarCollection(); Collection<ProductoaCambiar> productoacambiarCollectionNew = liquidacion.getProductoacambiarCollection(); List<String> illegalOrphanMessages = null; for (DescripcionLiquidacion descripcionLiquidacionCollectionOldDescripcionLiquidacion : descripcionLiquidacionCollectionOld) { if (!descripcionLiquidacionCollectionNew.contains( descripcionLiquidacionCollectionOldDescripcionLiquidacion)) { if (illegalOrphanMessages == null) { illegalOrphanMessages = new ArrayList<String>(); } illegalOrphanMessages.add( "You must retain DescripcionLiquidacion " + descripcionLiquidacionCollectionOldDescripcionLiquidacion + " since its liquidacionIdliquidacion field is not nullable."); } } for (ProductoaCambiar productoacambiarCollectionOldProductoaCambiar : productoacambiarCollectionOld) { if (!productoacambiarCollectionNew.contains( productoacambiarCollectionOldProductoaCambiar)) { if (illegalOrphanMessages == null) { illegalOrphanMessages = new ArrayList<String>(); } illegalOrphanMessages.add( "You must retain ProductoaCambiar " + productoacambiarCollectionOldProductoaCambiar + " since its liquidacionIdliquidacion field is not nullable."); } } if (illegalOrphanMessages != null) { throw new IllegalOrphanException(illegalOrphanMessages); } if (pedidoIdpedidoNew != null) { pedidoIdpedidoNew = em.getReference(pedidoIdpedidoNew.getClass(), pedidoIdpedidoNew.getIdpedido()); liquidacion.setPedidoIdpedido(pedidoIdpedidoNew); } Collection<DescripcionLiquidacion> attachedDescripcionLiquidacionCollectionNew = new ArrayList<DescripcionLiquidacion>(); for (DescripcionLiquidacion descripcionLiquidacionCollectionNewDescripcionLiquidacionToAttach : descripcionLiquidacionCollectionNew) { descripcionLiquidacionCollectionNewDescripcionLiquidacionToAttach = em.getReference( descripcionLiquidacionCollectionNewDescripcionLiquidacionToAttach.getClass(), descripcionLiquidacionCollectionNewDescripcionLiquidacionToAttach .getIdDescripcionLiquidacion()); attachedDescripcionLiquidacionCollectionNew.add( descripcionLiquidacionCollectionNewDescripcionLiquidacionToAttach); } descripcionLiquidacionCollectionNew = attachedDescripcionLiquidacionCollectionNew; liquidacion.setDescripcionLiquidacionCollection(descripcionLiquidacionCollectionNew); Collection<ProductoaCambiar> attachedProductoacambiarCollectionNew = new ArrayList<ProductoaCambiar>(); for (ProductoaCambiar productoacambiarCollectionNewProductoaCambiarToAttach : productoacambiarCollectionNew) { productoacambiarCollectionNewProductoaCambiarToAttach = em.getReference( productoacambiarCollectionNewProductoaCambiarToAttach.getClass(), productoacambiarCollectionNewProductoaCambiarToAttach.getIdproductoacambiar()); attachedProductoacambiarCollectionNew.add( productoacambiarCollectionNewProductoaCambiarToAttach); } productoacambiarCollectionNew = attachedProductoacambiarCollectionNew; liquidacion.setProductoacambiarCollection(productoacambiarCollectionNew); liquidacion = em.merge(liquidacion); if (pedidoIdpedidoOld != null && !pedidoIdpedidoOld.equals(pedidoIdpedidoNew)) { pedidoIdpedidoOld.getLiquidacionCollection().remove(liquidacion); pedidoIdpedidoOld = em.merge(pedidoIdpedidoOld); } if (pedidoIdpedidoNew != null && !pedidoIdpedidoNew.equals(pedidoIdpedidoOld)) { pedidoIdpedidoNew.getLiquidacionCollection().add(liquidacion); pedidoIdpedidoNew = em.merge(pedidoIdpedidoNew); } for (DescripcionLiquidacion descripcionLiquidacionCollectionNewDescripcionLiquidacion : descripcionLiquidacionCollectionNew) { if (!descripcionLiquidacionCollectionOld.contains( descripcionLiquidacionCollectionNewDescripcionLiquidacion)) { Liquidacion oldLiquidacionIdliquidacionOfDescripcionLiquidacionCollectionNewDescripcionLiquidacion = descripcionLiquidacionCollectionNewDescripcionLiquidacion .getLiquidacionIdliquidacion(); descripcionLiquidacionCollectionNewDescripcionLiquidacion.setLiquidacionIdliquidacion( liquidacion); descripcionLiquidacionCollectionNewDescripcionLiquidacion = em.merge(descripcionLiquidacionCollectionNewDescripcionLiquidacion); if (oldLiquidacionIdliquidacionOfDescripcionLiquidacionCollectionNewDescripcionLiquidacion != null && !oldLiquidacionIdliquidacionOfDescripcionLiquidacionCollectionNewDescripcionLiquidacion .equals(liquidacion)) { oldLiquidacionIdliquidacionOfDescripcionLiquidacionCollectionNewDescripcionLiquidacion .getDescripcionLiquidacionCollection() .remove(descripcionLiquidacionCollectionNewDescripcionLiquidacion); oldLiquidacionIdliquidacionOfDescripcionLiquidacionCollectionNewDescripcionLiquidacion = em.merge( oldLiquidacionIdliquidacionOfDescripcionLiquidacionCollectionNewDescripcionLiquidacion); } } } for (ProductoaCambiar productoacambiarCollectionNewProductoaCambiar : productoacambiarCollectionNew) { if (!productoacambiarCollectionOld.contains( productoacambiarCollectionNewProductoaCambiar)) { Liquidacion oldLiquidacionIdliquidacionOfProductoacambiarCollectionNewProductoaCambiar = productoacambiarCollectionNewProductoaCambiar.getLiquidacionIdliquidacion(); productoacambiarCollectionNewProductoaCambiar.setLiquidacionIdliquidacion(liquidacion); productoacambiarCollectionNewProductoaCambiar = em.merge(productoacambiarCollectionNewProductoaCambiar); if (oldLiquidacionIdliquidacionOfProductoacambiarCollectionNewProductoaCambiar != null && !oldLiquidacionIdliquidacionOfProductoacambiarCollectionNewProductoaCambiar.equals( liquidacion)) { oldLiquidacionIdliquidacionOfProductoacambiarCollectionNewProductoaCambiar .getProductoacambiarCollection() .remove(productoacambiarCollectionNewProductoaCambiar); oldLiquidacionIdliquidacionOfProductoacambiarCollectionNewProductoaCambiar = em.merge( oldLiquidacionIdliquidacionOfProductoacambiarCollectionNewProductoaCambiar); } } } em.getTransaction().commit(); } catch (Exception ex) { String msg = ex.getLocalizedMessage(); if (msg == null || msg.length() == 0) { Integer id = liquidacion.getIdliquidacion(); if (findLiquidacion(id) == null) { throw new NonexistentEntityException( "The liquidacion with id " + id + " no longer exists."); } } throw ex; } finally { if (em != null) { em.close(); } } }