Duvida de sintaxe na declaração de interfaces

@Repository
public interface PostagemRepository extends JpaRepository<Postagem, Long> {
	public List<Postagem>findAllByTituloContainingIgnoreCase(String titulo);
}

Olá tarde , meu professor começou a materia de Spring e eu fiquei com duvida na parte de repositorio esperificamente na notação depois que extende a classe atraves da herança,(nessa aqui JpaRepository<Postagem, Long> . )
Para mim esse <> era somente usado para collections, e quanto tem duas é para HashMap , uma sendo a chave e outra sendo a informação. To meio perdido alguem pode me ajudar?

Ps: Apenas para contexto isso é um projetinho para um blog pessoal em que estamos fazendo pori oss a postagem .

<> é usado para generics (type parameters, nesse caso). Collections usa bastante generics, mas não é algo restrito à eles.

Alguns tópicos relevantes:

Abraço.

1 curtida

Então ele ta usando uma classe JpaRepository como um HashMap com os paremetros
<Postagem,Long>? Ou como dito aqui nesse post diferenca-entre-tree-e-e-tree-t pelo [hugokotsubo] seria dizer que a classe é responsável por fazer as funções com um determinado tipo (o Postagem ), e retorna o resultado de outro tipo ( Long )?

Ps: Foi mal pelas duvidas é que eu nunca vi herança com esse tipo de parametro

Vc é livre para criar qualquer classe usando generics. Exemplo:

public class Impressora<T> {
    public void imprimir(T param) {
        System.out.println(param);
    }
}

E poderia usar assim:

Impressora<String> impressoraTexto = new Impressora<>();
impressoraTexto.imprimir("stringQualquer");

Impressora<Integer> impressoraNumero = new Impressora<>();
impressoraNumero.imprimir(100);
1 curtida

Blz vlw gente vo dar uma olhada melhor em generics

Não, ele está estendendo uma interface genérica do Spring chamada JpaRepository onde os objetos que serão criados, lidos, atualizados ou apagados são do tipo Postagem e o ID desses objetos é do tipo Long.

1 curtida