@Transactional(timeout = 10)
  public List<Perfil> listarPerfilSemAdministrativo() {
    try {
      // Retorna todos os perfils EXCETO O ADMINISTRADOR
      // iPerfilRepository.findAll(especificationPerfilParametros(1, "I", "id", false));
      if (LoginController.getCurrentInstance().getPermissaoAtual().getPerfil().getId() != 1) {
        return iPerfilRepository.findAll(where(especificationPerfilGeneric(1, "I", "id", false)));
      } else {
        return iPerfilRepository.findAll();
      }

    } catch (Exception e) {
      System.out.println("ERRO: " + e.getLocalizedMessage());
      return null;
    }
  }
 public boolean remover(Perfil perfil) {
   try {
     iPerfilRepository.delete(perfil);
     return true;
   } catch (Exception ex) {
     System.out.println("ERro: " + ex.getLocalizedMessage());
     return false;
   }
 }
 public boolean salvar(Perfil perfil) {
   try {
     iPerfilRepository.save(perfil);
     return true;
   } catch (Exception e) {
     System.out.println("Erro:" + e.getLocalizedMessage());
     return false;
   }
 }
 @Transactional(timeout = 10)
 public Perfil findPerfilID(Integer idPerfil) {
   try {
     return iPerfilRepository.findOne(idPerfil);
   } catch (Exception e) {
     System.out.println("ERRO: " + e.getLocalizedMessage());
     return null;
   }
 }
 @Transactional(timeout = 10)
 public List<Perfil> listarPerfil() {
   try {
     return iPerfilRepository.findAll();
   } catch (Exception e) {
     System.out.println("ERRO: " + e.getLocalizedMessage());
     return null;
   }
 }
 public Perfil findOnePerfil(Integer codigo) {
   return iPerfilRepository.findOne(codigo);
 }