public void create(Usuario usuario) {
   if (usuario.getHistoricoList() == null) {
     usuario.setHistoricoList(new ArrayList<Historico>());
   }
   if (usuario.getHistoricoList1() == null) {
     usuario.setHistoricoList1(new ArrayList<Historico>());
   }
   EntityManager em = null;
   try {
     em = getEntityManager();
     em.getTransaction().begin();
     List<Historico> attachedHistoricoList = new ArrayList<Historico>();
     for (Historico historicoListHistoricoToAttach : usuario.getHistoricoList()) {
       historicoListHistoricoToAttach =
           em.getReference(
               historicoListHistoricoToAttach.getClass(),
               historicoListHistoricoToAttach.getIdhistorico());
       attachedHistoricoList.add(historicoListHistoricoToAttach);
     }
     usuario.setHistoricoList(attachedHistoricoList);
     List<Historico> attachedHistoricoList1 = new ArrayList<Historico>();
     for (Historico historicoList1HistoricoToAttach : usuario.getHistoricoList1()) {
       historicoList1HistoricoToAttach =
           em.getReference(
               historicoList1HistoricoToAttach.getClass(),
               historicoList1HistoricoToAttach.getIdhistorico());
       attachedHistoricoList1.add(historicoList1HistoricoToAttach);
     }
     usuario.setHistoricoList1(attachedHistoricoList1);
     em.persist(usuario);
     for (Historico historicoListHistorico : usuario.getHistoricoList()) {
       Usuario oldAtendenteOfHistoricoListHistorico = historicoListHistorico.getAtendente();
       historicoListHistorico.setAtendente(usuario);
       historicoListHistorico = em.merge(historicoListHistorico);
       if (oldAtendenteOfHistoricoListHistorico != null) {
         oldAtendenteOfHistoricoListHistorico.getHistoricoList().remove(historicoListHistorico);
         oldAtendenteOfHistoricoListHistorico = em.merge(oldAtendenteOfHistoricoListHistorico);
       }
     }
     for (Historico historicoList1Historico : usuario.getHistoricoList1()) {
       Usuario oldUsuarioOfHistoricoList1Historico = historicoList1Historico.getUsuario();
       historicoList1Historico.setUsuario(usuario);
       historicoList1Historico = em.merge(historicoList1Historico);
       if (oldUsuarioOfHistoricoList1Historico != null) {
         oldUsuarioOfHistoricoList1Historico.getHistoricoList1().remove(historicoList1Historico);
         oldUsuarioOfHistoricoList1Historico = em.merge(oldUsuarioOfHistoricoList1Historico);
       }
     }
     em.getTransaction().commit();
   } finally {
     if (em != null) {
       em.close();
     }
   }
 }
 public void destroy(Integer id) throws IllegalOrphanException, NonexistentEntityException {
   EntityManager em = null;
   try {
     em = getEntityManager();
     em.getTransaction().begin();
     Usuario usuario;
     try {
       usuario = em.getReference(Usuario.class, id);
       usuario.getIdUsuario();
     } catch (EntityNotFoundException enfe) {
       throw new NonexistentEntityException(
           "The usuario with id " + id + " no longer exists.", enfe);
     }
     List<String> illegalOrphanMessages = null;
     List<Historico> historicoListOrphanCheck = usuario.getHistoricoList();
     for (Historico historicoListOrphanCheckHistorico : historicoListOrphanCheck) {
       if (illegalOrphanMessages == null) {
         illegalOrphanMessages = new ArrayList<String>();
       }
       illegalOrphanMessages.add(
           "This Usuario ("
               + usuario
               + ") cannot be destroyed since the Historico "
               + historicoListOrphanCheckHistorico
               + " in its historicoList field has a non-nullable atendente field.");
     }
     List<Historico> historicoList1OrphanCheck = usuario.getHistoricoList1();
     for (Historico historicoList1OrphanCheckHistorico : historicoList1OrphanCheck) {
       if (illegalOrphanMessages == null) {
         illegalOrphanMessages = new ArrayList<String>();
       }
       illegalOrphanMessages.add(
           "This Usuario ("
               + usuario
               + ") cannot be destroyed since the Historico "
               + historicoList1OrphanCheckHistorico
               + " in its historicoList1 field has a non-nullable usuario field.");
     }
     if (illegalOrphanMessages != null) {
       throw new IllegalOrphanException(illegalOrphanMessages);
     }
     em.remove(usuario);
     em.getTransaction().commit();
   } finally {
     if (em != null) {
       em.close();
     }
   }
 }