Skip to content

05_primeiraentidade

Douglas Fernandes edited this page Aug 28, 2020 · 11 revisions

Primeira Entidade com Spring Data!

Começamos este passo na branch t02/end

Vamos falar sobre Spring data, e sobre acesso a dados.

Referências:

  • Spring Data
  • H2 é um in-memory database, vamos utilizar para conseguir fazer os exemplos sem exigir a instalação de um banco de dados específico.

Passo a Passo :

  1. Configurando dependências no pom.xml. DIFF.
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <scope>runtime</scope>
</dependency>
  1. Criar a package: com.example.project.domain.entities.
  2. Dentro da package com.example.project.domain.entities, crie uma nova classe Client. Arquivo final.
  3. Criar uma nova package: com.example.project.repository.
  4. Dentro da package criada, criem uma nova interface ClientRepository. Arquivo final.
  • Criamos uma interface especifica, que extende as funcionalidades padrões do JPA para a nossa entidade padrão.
  1. Vamos altear a classe ClientService, para usar nosso repositório de dados. DIFF.

Branch final t02/03.

Para ver as alterações completas DIFF das alterações

Passo a Passo 2:

Mapeamento manual, não é algo fácil de ser fazer, nem legal. Para isso demos libs como modelMapper.

  1. Configurando dependências no pom.xml. DIFF.
<dependency>
    <groupId>org.modelmapper</groupId>
    <artifactId>modelmapper</artifactId>
    <version>2.3.0</version>
</dependency>
  1. Dentro da package com.example.project.configuration, vamos criar uma inicialização para o modelMapper.
  1. Agora vamos criar o mapper para nossos modelos.
  • Criar a package: com.example.project.domain.mapper.
  • Criar a classe ClientMapper Arquivo Final.
  1. Também vamos criar um Exception, para um alteração que vamos fazer no ClientService.
  • Criar a package: com.example.project.exception.
  • Criar a classe DataNotFoundException Arquivo Final.
  1. Agora vamos alterar nosso codigo para usar as novas funcionalidades.
  • Atualizar o ClientService Diff.
  • Atualizar o ClientController Diff.

Branch final t02/03.

Para ver as alterações completas DIFF das alterações

Pequeno Desafio: concluir o nosso end-point REST, adicionar os metodos PUT e DELETE.

Siga para o próximo tópico: Custom Query

Clone this wiki locally