Na parte do código do professor onde consta
"todos.forEach(p2 -> System.out.println(p.getNome()));" Não deveria ser "todos.forEach(p2 -> System.out.println(p2.getNome()));"?
Pois se colocar p.getNome está imprimindo somente o produto de id 1L. Eu adicionei outros produtos na minha tabela e só conseguir listar todos quando alterei para p2.getnome