1
resposta

[Sugestão] Busca episódios por trecho

Olá, boa tarde!

Nessa aula, vocês poderiam ter comparado a sintaxe java com a sintaxe SQL para clarear um pouco mais as ideias.

Para quem já conhece bem o SQL, acabou ficando um pouco confuso a sintaxe jpql, pois ao invés de juntar duas tabelas, foram juntadas uma classe (Serie, como se fosse a tabela series) com o atributo (episodios) que mapeia a associação entre as entidades dessa mesma classe. Então isso foi o grande diferencial, pois em SQL junta-se uma tabela com a outra e é referenciado a chave primária com a chave estrangeira da outra tabela, e é bem mais simples.

Então essa sintaxe em Java:

// SerieRepository.java
@Query("SELECT e FROM Serie s JOIN s.episodios e WHERE e.titulo ILIKE %:trechoEpisodio%")
// Principal
private void buscarEpisodioPorTrecho() {
        System.out.println("Qual é o trecho do episódio?");
        var trechoEpisodio = leitura.nextLine();
        List<Episodio> episodiosEncontrados = repositorio.episodiosPorTrecho(trechoEpisodio);
                episodiosEncontrados.forEach(e ->
                System.out.printf("Série: %s, Temporada %s, Episódio %s - %s\n",
                e.getSerie().getTitulo(), e.getTemporada(),
                        e.getNumeroEpisodio(), e.getTitulo()));
    }

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeÉ igual a essa sintaxe em SQL:

SELECT s.titulo, e.temporada, e.numero_episodio, e.titulo
FROM series s
JOIN episodios e ON s.id = e.serie_id
WHERE e.titulo ILIKE '%woman%';

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeEspero ter ajudado quem ficou com a mesma dúvida.

1 resposta

Olá, Sergio! Tudo bem?

Muito obrigada pela contribuição, ela é muito valiosa para nós e torna o fórum cada vez mais rico! Realmente, a comparação entre a sintaxe JPQL e SQL pode ajudar a esclarecer as diferenças e semelhanças entre as duas, especialmente para quem já tem familiaridade com SQL. A sua observação é muito pertinente, pois destaca como a orientação a objetos do Java e o mapeamento de entidades com JPA influenciam na forma de escrever consultas em JPQL.

Continue explorando e qualquer dúvida, estamos aqui para ajudar!

Um forte abraço e bons estudos!