1
resposta

Nao consigo usar a anotacao @Query = ERRO illegal start of type

C:\curso\3355-java-screenmatch-com-jpa-main\src\main\java\br\com\alura\screenmatch\repository\SerieRepository.java:25:100
java: illegal start of type

Principal.java

    private void buscarEpisodioPorTrecho() {
        System.out.println("Digite o trecho do episodio que deseja: ");
        var nomeTrecho = leitura.nextLine();

        List<Serie> seriesEncontradasPorTrecho = repositorio.episodioPorTrecho(nomeTrecho);
        seriesEncontradasPorTrecho.forEach(System.out::println);
    }


SerieRepository.java
    @Query(value = "SELECT e FROM Serie JOIN s.episodios e WHERE e.titulo ILIKE %:trechoEpisodio%");
    List<Serie> episodioPorTrecho(String trechoEpisodio);
1 resposta

Olá, Fabio! Como Vai?

O erro "illegal start of type" geralmente indica um problema de sintaxe na sua query JPQL.

No seu caso, o problema está relacionado na falta da definição do alias de Serie o s. Você não o definiu, mas está utilizando mesmo assim, como no trecho s.episodios, então, de forma corrigida, você deve defini-lo antes de JOIN. Segue o exemplo:

@Query(value = "SELECT e FROM Serie s JOIN s.episodios e WHERE e.titulo ILIKE %:trechoEpisodio%");

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.