public void create(Funcao funcao) throws RollbackFailureException, Exception { if (funcao.getPessoaFisicaJuridicaCollection() == null) { funcao.setPessoaFisicaJuridicaCollection(new ArrayList<PessoaFisicaJuridica>()); } if (funcao.getPessoaFisicaJuridicaHistoricoCollection() == null) { funcao.setPessoaFisicaJuridicaHistoricoCollection( new ArrayList<PessoaFisicaJuridicaHistorico>()); } EntityManager em = null; try { em = getEntityManager(); em.getTransaction().begin(); Collection<PessoaFisicaJuridica> attachedPessoaFisicaJuridicaCollection = new ArrayList<PessoaFisicaJuridica>(); for (PessoaFisicaJuridica pessoaFisicaJuridicaCollectionPessoaFisicaJuridicaToAttach : funcao.getPessoaFisicaJuridicaCollection()) { pessoaFisicaJuridicaCollectionPessoaFisicaJuridicaToAttach = em.getReference( pessoaFisicaJuridicaCollectionPessoaFisicaJuridicaToAttach.getClass(), pessoaFisicaJuridicaCollectionPessoaFisicaJuridicaToAttach.getId()); attachedPessoaFisicaJuridicaCollection.add( pessoaFisicaJuridicaCollectionPessoaFisicaJuridicaToAttach); } funcao.setPessoaFisicaJuridicaCollection(attachedPessoaFisicaJuridicaCollection); Collection<PessoaFisicaJuridicaHistorico> attachedPessoaFisicaJuridicaHistoricoCollection = new ArrayList<PessoaFisicaJuridicaHistorico>(); for (PessoaFisicaJuridicaHistorico pessoaFisicaJuridicaHistoricoCollectionPessoaFisicaJuridicaHistoricoToAttach : funcao.getPessoaFisicaJuridicaHistoricoCollection()) { pessoaFisicaJuridicaHistoricoCollectionPessoaFisicaJuridicaHistoricoToAttach = em.getReference( pessoaFisicaJuridicaHistoricoCollectionPessoaFisicaJuridicaHistoricoToAttach .getClass(), pessoaFisicaJuridicaHistoricoCollectionPessoaFisicaJuridicaHistoricoToAttach .getId()); attachedPessoaFisicaJuridicaHistoricoCollection.add( pessoaFisicaJuridicaHistoricoCollectionPessoaFisicaJuridicaHistoricoToAttach); } funcao.setPessoaFisicaJuridicaHistoricoCollection( attachedPessoaFisicaJuridicaHistoricoCollection); em.persist(funcao); for (PessoaFisicaJuridica pessoaFisicaJuridicaCollectionPessoaFisicaJuridica : funcao.getPessoaFisicaJuridicaCollection()) { Funcao oldFuncaoFkOfPessoaFisicaJuridicaCollectionPessoaFisicaJuridica = pessoaFisicaJuridicaCollectionPessoaFisicaJuridica.getFuncaoFk(); pessoaFisicaJuridicaCollectionPessoaFisicaJuridica.setFuncaoFk(funcao); pessoaFisicaJuridicaCollectionPessoaFisicaJuridica = em.merge(pessoaFisicaJuridicaCollectionPessoaFisicaJuridica); if (oldFuncaoFkOfPessoaFisicaJuridicaCollectionPessoaFisicaJuridica != null) { oldFuncaoFkOfPessoaFisicaJuridicaCollectionPessoaFisicaJuridica .getPessoaFisicaJuridicaCollection() .remove(pessoaFisicaJuridicaCollectionPessoaFisicaJuridica); oldFuncaoFkOfPessoaFisicaJuridicaCollectionPessoaFisicaJuridica = em.merge(oldFuncaoFkOfPessoaFisicaJuridicaCollectionPessoaFisicaJuridica); } } for (PessoaFisicaJuridicaHistorico pessoaFisicaJuridicaHistoricoCollectionPessoaFisicaJuridicaHistorico : funcao.getPessoaFisicaJuridicaHistoricoCollection()) { Funcao oldFuncaoFkOfPessoaFisicaJuridicaHistoricoCollectionPessoaFisicaJuridicaHistorico = pessoaFisicaJuridicaHistoricoCollectionPessoaFisicaJuridicaHistorico.getFuncaoFk(); pessoaFisicaJuridicaHistoricoCollectionPessoaFisicaJuridicaHistorico.setFuncaoFk(funcao); pessoaFisicaJuridicaHistoricoCollectionPessoaFisicaJuridicaHistorico = em.merge(pessoaFisicaJuridicaHistoricoCollectionPessoaFisicaJuridicaHistorico); if (oldFuncaoFkOfPessoaFisicaJuridicaHistoricoCollectionPessoaFisicaJuridicaHistorico != null) { oldFuncaoFkOfPessoaFisicaJuridicaHistoricoCollectionPessoaFisicaJuridicaHistorico .getPessoaFisicaJuridicaHistoricoCollection() .remove(pessoaFisicaJuridicaHistoricoCollectionPessoaFisicaJuridicaHistorico); oldFuncaoFkOfPessoaFisicaJuridicaHistoricoCollectionPessoaFisicaJuridicaHistorico = em.merge( oldFuncaoFkOfPessoaFisicaJuridicaHistoricoCollectionPessoaFisicaJuridicaHistorico); } } em.getTransaction().commit(); } catch (Exception ex) { try { em.getTransaction().rollback(); } catch (Exception re) { throw new RollbackFailureException( "An error occurred attempting to roll back the transaction.", re); } throw ex; } finally { if (em != null) { em.close(); } } }
public void edit(Funcao funcao) throws NonexistentEntityException, RollbackFailureException, Exception { EntityManager em = null; try { em = getEntityManager(); em.getTransaction().begin(); Funcao persistentFuncao = em.find(Funcao.class, funcao.getId()); Collection<PessoaFisicaJuridica> pessoaFisicaJuridicaCollectionOld = persistentFuncao.getPessoaFisicaJuridicaCollection(); Collection<PessoaFisicaJuridica> pessoaFisicaJuridicaCollectionNew = funcao.getPessoaFisicaJuridicaCollection(); Collection<PessoaFisicaJuridicaHistorico> pessoaFisicaJuridicaHistoricoCollectionOld = persistentFuncao.getPessoaFisicaJuridicaHistoricoCollection(); Collection<PessoaFisicaJuridicaHistorico> pessoaFisicaJuridicaHistoricoCollectionNew = funcao.getPessoaFisicaJuridicaHistoricoCollection(); Collection<PessoaFisicaJuridica> attachedPessoaFisicaJuridicaCollectionNew = new ArrayList<PessoaFisicaJuridica>(); for (PessoaFisicaJuridica pessoaFisicaJuridicaCollectionNewPessoaFisicaJuridicaToAttach : pessoaFisicaJuridicaCollectionNew) { pessoaFisicaJuridicaCollectionNewPessoaFisicaJuridicaToAttach = em.getReference( pessoaFisicaJuridicaCollectionNewPessoaFisicaJuridicaToAttach.getClass(), pessoaFisicaJuridicaCollectionNewPessoaFisicaJuridicaToAttach.getId()); attachedPessoaFisicaJuridicaCollectionNew.add( pessoaFisicaJuridicaCollectionNewPessoaFisicaJuridicaToAttach); } pessoaFisicaJuridicaCollectionNew = attachedPessoaFisicaJuridicaCollectionNew; funcao.setPessoaFisicaJuridicaCollection(pessoaFisicaJuridicaCollectionNew); Collection<PessoaFisicaJuridicaHistorico> attachedPessoaFisicaJuridicaHistoricoCollectionNew = new ArrayList<PessoaFisicaJuridicaHistorico>(); for (PessoaFisicaJuridicaHistorico pessoaFisicaJuridicaHistoricoCollectionNewPessoaFisicaJuridicaHistoricoToAttach : pessoaFisicaJuridicaHistoricoCollectionNew) { pessoaFisicaJuridicaHistoricoCollectionNewPessoaFisicaJuridicaHistoricoToAttach = em.getReference( pessoaFisicaJuridicaHistoricoCollectionNewPessoaFisicaJuridicaHistoricoToAttach .getClass(), pessoaFisicaJuridicaHistoricoCollectionNewPessoaFisicaJuridicaHistoricoToAttach .getId()); attachedPessoaFisicaJuridicaHistoricoCollectionNew.add( pessoaFisicaJuridicaHistoricoCollectionNewPessoaFisicaJuridicaHistoricoToAttach); } pessoaFisicaJuridicaHistoricoCollectionNew = attachedPessoaFisicaJuridicaHistoricoCollectionNew; funcao.setPessoaFisicaJuridicaHistoricoCollection(pessoaFisicaJuridicaHistoricoCollectionNew); funcao = em.merge(funcao); for (PessoaFisicaJuridica pessoaFisicaJuridicaCollectionOldPessoaFisicaJuridica : pessoaFisicaJuridicaCollectionOld) { if (!pessoaFisicaJuridicaCollectionNew.contains( pessoaFisicaJuridicaCollectionOldPessoaFisicaJuridica)) { pessoaFisicaJuridicaCollectionOldPessoaFisicaJuridica.setFuncaoFk(null); pessoaFisicaJuridicaCollectionOldPessoaFisicaJuridica = em.merge(pessoaFisicaJuridicaCollectionOldPessoaFisicaJuridica); } } for (PessoaFisicaJuridica pessoaFisicaJuridicaCollectionNewPessoaFisicaJuridica : pessoaFisicaJuridicaCollectionNew) { if (!pessoaFisicaJuridicaCollectionOld.contains( pessoaFisicaJuridicaCollectionNewPessoaFisicaJuridica)) { Funcao oldFuncaoFkOfPessoaFisicaJuridicaCollectionNewPessoaFisicaJuridica = pessoaFisicaJuridicaCollectionNewPessoaFisicaJuridica.getFuncaoFk(); pessoaFisicaJuridicaCollectionNewPessoaFisicaJuridica.setFuncaoFk(funcao); pessoaFisicaJuridicaCollectionNewPessoaFisicaJuridica = em.merge(pessoaFisicaJuridicaCollectionNewPessoaFisicaJuridica); if (oldFuncaoFkOfPessoaFisicaJuridicaCollectionNewPessoaFisicaJuridica != null && !oldFuncaoFkOfPessoaFisicaJuridicaCollectionNewPessoaFisicaJuridica.equals( funcao)) { oldFuncaoFkOfPessoaFisicaJuridicaCollectionNewPessoaFisicaJuridica .getPessoaFisicaJuridicaCollection() .remove(pessoaFisicaJuridicaCollectionNewPessoaFisicaJuridica); oldFuncaoFkOfPessoaFisicaJuridicaCollectionNewPessoaFisicaJuridica = em.merge(oldFuncaoFkOfPessoaFisicaJuridicaCollectionNewPessoaFisicaJuridica); } } } for (PessoaFisicaJuridicaHistorico pessoaFisicaJuridicaHistoricoCollectionOldPessoaFisicaJuridicaHistorico : pessoaFisicaJuridicaHistoricoCollectionOld) { if (!pessoaFisicaJuridicaHistoricoCollectionNew.contains( pessoaFisicaJuridicaHistoricoCollectionOldPessoaFisicaJuridicaHistorico)) { pessoaFisicaJuridicaHistoricoCollectionOldPessoaFisicaJuridicaHistorico.setFuncaoFk(null); pessoaFisicaJuridicaHistoricoCollectionOldPessoaFisicaJuridicaHistorico = em.merge(pessoaFisicaJuridicaHistoricoCollectionOldPessoaFisicaJuridicaHistorico); } } for (PessoaFisicaJuridicaHistorico pessoaFisicaJuridicaHistoricoCollectionNewPessoaFisicaJuridicaHistorico : pessoaFisicaJuridicaHistoricoCollectionNew) { if (!pessoaFisicaJuridicaHistoricoCollectionOld.contains( pessoaFisicaJuridicaHistoricoCollectionNewPessoaFisicaJuridicaHistorico)) { Funcao oldFuncaoFkOfPessoaFisicaJuridicaHistoricoCollectionNewPessoaFisicaJuridicaHistorico = pessoaFisicaJuridicaHistoricoCollectionNewPessoaFisicaJuridicaHistorico .getFuncaoFk(); pessoaFisicaJuridicaHistoricoCollectionNewPessoaFisicaJuridicaHistorico.setFuncaoFk( funcao); pessoaFisicaJuridicaHistoricoCollectionNewPessoaFisicaJuridicaHistorico = em.merge(pessoaFisicaJuridicaHistoricoCollectionNewPessoaFisicaJuridicaHistorico); if (oldFuncaoFkOfPessoaFisicaJuridicaHistoricoCollectionNewPessoaFisicaJuridicaHistorico != null && !oldFuncaoFkOfPessoaFisicaJuridicaHistoricoCollectionNewPessoaFisicaJuridicaHistorico .equals(funcao)) { oldFuncaoFkOfPessoaFisicaJuridicaHistoricoCollectionNewPessoaFisicaJuridicaHistorico .getPessoaFisicaJuridicaHistoricoCollection() .remove(pessoaFisicaJuridicaHistoricoCollectionNewPessoaFisicaJuridicaHistorico); oldFuncaoFkOfPessoaFisicaJuridicaHistoricoCollectionNewPessoaFisicaJuridicaHistorico = em.merge( oldFuncaoFkOfPessoaFisicaJuridicaHistoricoCollectionNewPessoaFisicaJuridicaHistorico); } } } em.getTransaction().commit(); } catch (Exception ex) { try { em.getTransaction().rollback(); } catch (Exception re) { throw new RollbackFailureException( "An error occurred attempting to roll back the transaction.", re); } String msg = ex.getLocalizedMessage(); if (msg == null || msg.length() == 0) { Integer id = funcao.getId(); if (findFuncao(id) == null) { throw new NonexistentEntityException("The funcao with id " + id + " no longer exists."); } } throw ex; } finally { if (em != null) { em.close(); } } }