public List<Exercicio> getByTopico(EntityManager em, Topico topico)
     throws RegistroNaoEncontradoException {
   List<Exercicio> exercicios = new ArrayList<Exercicio>();
   boolean inseri;
   try {
     List<ExercicioTopico> exerciciosTopicos =
         ExercicioTopicoDAO.getInstance().getByTopico(em, topico);
     for (ExercicioTopico et : exerciciosTopicos) {
       inseri = true;
       for (Topico t : et.getExercicio().getTopicos()) {
         if (t.getUnidade().getCodigo() > topico.getUnidade().getCodigo()) {
           inseri = false;
           break;
         }
       }
       if (inseri) {
         exercicios.add(et.getExercicio());
       }
     }
   } catch (Exception e) {
     System.out.println(e);
     throw new RegistroNaoEncontradoException();
   }
   return exercicios;
 }
 public void remove(EntityManager em, Exercicio pExercicio)
     throws ProblemasDeAtualizacaoException {
   try {
     pExercicio = em.find(Exercicio.class, pExercicio.getCodigo());
     for (ExercicioTopico e : pExercicio.getExerciciosTopicos()) {
       ExercicioTopicoDAO.getInstance().del(em, e);
     }
     em.remove(pExercicio);
   } catch (Exception e) {
     System.out.println(e);
     throw new ProblemasDeAtualizacaoException();
   }
 }