No repository, o instrutor utilizou JPQL para fazer a query e fez um join. Eu acho que o join ficou meio confuso, pelo menos nessa situação + a explicação dele.
Tentei utilizar o que foi ensinado no curso de Spring Data, com queries nativas:
@Query(value = "SELECT * FROM pedidos WHERE user_username = :username", nativeQuery = true)
List<Pedido> findAllByUser(String username);
e este método funcionou tranquilamente. E aliás, do jeito que a entidade "Pedido" está declarada, ao buscar um objeto no banco de dados não gera nenhuma query N+1, resultados do console:
Hibernate: SELECT * FROM pedidos WHERE user_username = ?
EDIT:
Na verdade, poderia ficar assim:
List<Pedido> findByStatus(StatusPedido status);
List<Pedido> findByUser(User user);
List<Pedido> findByStatusAndUser(StatusPedido status, User user);