No final da aula, é mostrado que posso criar nome alternativos para os métodos usando a anotação @Query
:
public interface TopicoRepository extends JpaRepository<Topico, Long> {
List<Topico> findByCursoNome(String nomeCurso);
@Query("SELECT t FROM Topico t WHERE t.curso.nome = :nomeCurso")
List<Topico> carregarPorNomeDoCurso(String nomeCurso);
}
Mas uma coisa que eu experimentei e deu certo foi usar os métodos default
das interfaces que passaram a existir a partir do Java 8:
public interface TopicoRepository extends JpaRepository<Topico, Long> {
List<Topico> findByCursoNome(String nomeCurso);
default List<Topico> carregarPorNomeDoCurso(String nomeCurso) {
return this.findByCursoNome(nomeCurso);
}
}
Isso seria uma outra alternativa.