No seguinte exemplo de aula:
public void aprovar(AprovarAdocaoDTO dto){
        Adocao adocao = adocaoRepository.getReferenceById(dto.idAdocao());	        
       try{
            adocao.marcarComoAprovada();
            adocao.getPet().marcarComoAdotado();
        }catch (EntityNotFoundException ex){
            System.out.println("Adocao não encontrada");
        }
    }
O lançamento dessa exceção não deveria ser ao tentar instanciar o objeto adocao? Porque se ocorrerem outros tipos de erros na execução dos métodos marcarComoAdotado() e getPet().marcarComoAdotado() a mensagem "Adoção não encontrada" pode não refletir o real problema ocorrido, caso o id da adoção esteja correto o objeto adocao seja instanciado corretamente.