public void create(Comprobante comprobante) { EntityManager em = null; try { em = getEntityManager(); em.getTransaction().begin(); Operador administrativoResponsable = comprobante.getAdministrativoResponsable(); if (administrativoResponsable != null) { administrativoResponsable = em.getReference( administrativoResponsable.getClass(), administrativoResponsable.getIdOperador()); comprobante.setAdministrativoResponsable(administrativoResponsable); } Clase claseLicencia = comprobante.getClaseLicencia(); if (claseLicencia != null) { claseLicencia = em.getReference(claseLicencia.getClass(), claseLicencia.getIdClase()); comprobante.setClaseLicencia(claseLicencia); } Titular titular = comprobante.getTitular(); if (titular != null) { titular = em.getReference(titular.getClass(), titular.getIdTitular()); comprobante.setTitular(titular); } em.persist(comprobante); if (administrativoResponsable != null) { administrativoResponsable.getComprobanteCollection().add(comprobante); administrativoResponsable = em.merge(administrativoResponsable); } if (claseLicencia != null) { claseLicencia.getComprobanteCollection().add(comprobante); claseLicencia = em.merge(claseLicencia); } if (titular != null) { titular.getComprobanteCollection().add(comprobante); titular = em.merge(titular); } em.getTransaction().commit(); } finally { if (em != null) { em.close(); } } }
public void edit(Comprobante comprobante) throws NonexistentEntityException, Exception { EntityManager em = null; try { em = getEntityManager(); em.getTransaction().begin(); Comprobante persistentComprobante = em.find(Comprobante.class, comprobante.getIdComprobante()); Operador administrativoResponsableOld = persistentComprobante.getAdministrativoResponsable(); Operador administrativoResponsableNew = comprobante.getAdministrativoResponsable(); Clase claseLicenciaOld = persistentComprobante.getClaseLicencia(); Clase claseLicenciaNew = comprobante.getClaseLicencia(); Titular titularOld = persistentComprobante.getTitular(); Titular titularNew = comprobante.getTitular(); if (administrativoResponsableNew != null) { administrativoResponsableNew = em.getReference( administrativoResponsableNew.getClass(), administrativoResponsableNew.getIdOperador()); comprobante.setAdministrativoResponsable(administrativoResponsableNew); } if (claseLicenciaNew != null) { claseLicenciaNew = em.getReference(claseLicenciaNew.getClass(), claseLicenciaNew.getIdClase()); comprobante.setClaseLicencia(claseLicenciaNew); } if (titularNew != null) { titularNew = em.getReference(titularNew.getClass(), titularNew.getIdTitular()); comprobante.setTitular(titularNew); } comprobante = em.merge(comprobante); if (administrativoResponsableOld != null && !administrativoResponsableOld.equals(administrativoResponsableNew)) { administrativoResponsableOld.getComprobanteCollection().remove(comprobante); administrativoResponsableOld = em.merge(administrativoResponsableOld); } if (administrativoResponsableNew != null && !administrativoResponsableNew.equals(administrativoResponsableOld)) { administrativoResponsableNew.getComprobanteCollection().add(comprobante); administrativoResponsableNew = em.merge(administrativoResponsableNew); } if (claseLicenciaOld != null && !claseLicenciaOld.equals(claseLicenciaNew)) { claseLicenciaOld.getComprobanteCollection().remove(comprobante); claseLicenciaOld = em.merge(claseLicenciaOld); } if (claseLicenciaNew != null && !claseLicenciaNew.equals(claseLicenciaOld)) { claseLicenciaNew.getComprobanteCollection().add(comprobante); claseLicenciaNew = em.merge(claseLicenciaNew); } if (titularOld != null && !titularOld.equals(titularNew)) { titularOld.getComprobanteCollection().remove(comprobante); titularOld = em.merge(titularOld); } if (titularNew != null && !titularNew.equals(titularOld)) { titularNew.getComprobanteCollection().add(comprobante); titularNew = em.merge(titularNew); } em.getTransaction().commit(); } catch (Exception ex) { String msg = ex.getLocalizedMessage(); if (msg == null || msg.length() == 0) { Integer id = comprobante.getIdComprobante(); if (findComprobante(id) == null) { throw new NonexistentEntityException( "The comprobante with id " + id + " no longer exists."); } } throw ex; } finally { if (em != null) { em.close(); } } }