Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
June 24, 2022 06:14 pm GMT

Spring Data Repositories - Pra que servem e como funcionam por baixo dos panos?

A manipulao de entidades no Spring facilitada pela criao de uma interface chamada Repository. Isso facilita muito para o gerenciamento das entidades sem precisar de usar o EntityManager, de forma mais trabalhosa. Embora usemos essa interface usando Spring Data, nem sempre sabemos o que est acontecendo por baixo dos panos.

Ok, Matheus, mas como que se usa esse tal de Spring Data Repository mesmo?

O objetivo de se usar os repositories do Spring Data reduzir a quantidade de cdigo necessrio para manusear as entidades de forma complexa. Para isso, criamos a interface repository extendendo outra interface como, por exemplo, a CrudRepository. O que essa extenso causa o provisionamento de alguns mtodos para performar um CRUD da entidade no banco de dados, isto , Criar, Ler, Atualizar e Deletar dados. possvel estender algumas outras interfaces, como a JpaRepository com funcionalidades de listagem e paginao e, ainda, complementar as assinaturas dessas interfaces e usar anotaes para a insero de queries customizadas e coisas afins.

Um exemplo seria:

@Repositorypublic interface Repositorio extends CrudRepository<Pessoa, Integer> {     Pessoa findByName(@Param("name") String name);}

Dentro dos diamantes do CrudRepository h a entidade a ser manipulada e, em seguida, o tipo da Primary Key da entidade.

A assinatura do mtodo entre as chaves significa um mtodo customizado que desejo que a interface seja capaz de produzir, que foge do escopo do que CrudRepository fornece..

Beleza, entendi, mas como que uma interface capaz de realizar alguma ao, sendo que ela s uma assinatura?

a, meu querido, que surge a mgica embaixo dos panos.

Lembra que criada uma interface estendendo as interfaces CrudRepository ou JpaRepository? Ento, nesse momento o Spring implementa essa interface por baixo dos panos na classe SimpleJpaRepository, que fica responsvel por manipular a entidade. Essa classe fornece um conjunto mais complexo do que o EntityManager e possvel encontrar a documentao aqui.

Ento s isso que rola embaixo dos panos? Easy.

No bem assim, meu jovem.

Um exemplo de coisas mais aprofundadas a se inteirar seria o proxy, JdkDynamicAopProxy, que em linhas gerais usado para gerenciar os mtodos customizados criados em sua interface de repositrio. Caso voc use a interface com os mtodos CRUD habilitados pela extenso de CrudRepository, o proxy simplesmente te leva at o SimpleJpaRepository. No entanto, se voc utilizar os seus mtodos customizados, o proxy te redirecionar para as outras estruturas Spring Data para que sua query especfica seja alcanada.

Ento, no caso da nossa implementao repositorio, os mtodos nativos de CrudRepository seriam redirecionados para o SimpleJpaRepository, enquanto o mtodo FindByName seria redirecionado para outras estruturas de servio do Spring Data.


Original Link: https://dev.to/matheusgamasg/spring-data-repositories-pra-que-servem-e-como-funcionam-por-baixo-dos-panos-1oac

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To