1
resposta

[Sugestão] Desafio: hora da prática

package com.desafioalura.gerenciadorpedidos.model;

import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;

@Entity
public class Categoria {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String nome;

    // construtores ..
    // getters e setters ..

}
package com.desafioalura.gerenciadorpedidos.model;

import jakarta.persistence.*;

@Entity
public class Produto {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    @Column(unique = true, nullable = false)
    private String nome;
    @Column(name = "valor")
    private Double preco;

    // construtores ..
    // getters e setters ..
}
package com.desafioalura.gerenciadorpedidos.model;

import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;

import java.time.LocalDate;
@Entity
public class Pedido {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private LocalDate data;
    
     // construtores ..
    // getters e setters ..

    }
// repositories
package com.desafioalura.gerenciadorpedidos.repository;

import com.desafioalura.gerenciadorpedidos.model.Categoria;
import org.springframework.data.jpa.repository.JpaRepository;

public interface ICategoriaRepository extends JpaRepository<Categoria, Long> {}
public interface IPedidoRepository extends JpaRepository<Pedido, Long> {}
public interface IProdutoRepository extends JpaRepository<Produto, Long> {}
package com.desafioalura.gerenciadorpedidos.main;

import com.desafioalura.gerenciadorpedidos.model.Categoria;
import com.desafioalura.gerenciadorpedidos.model.Pedido;
import com.desafioalura.gerenciadorpedidos.model.Produto;
import com.desafioalura.gerenciadorpedidos.repository.ICategoriaRepository;
import com.desafioalura.gerenciadorpedidos.repository.IPedidoRepository;
import com.desafioalura.gerenciadorpedidos.repository.IProdutoRepository;
public class Main {
    private ICategoriaRepository categoriaRepository;
    private IPedidoRepository pedidoRepository;
    private IProdutoRepository produtoRepository;

    public Main(ICategoriaRepository categoriaRepository, IPedidoRepository pedidoRepository, IProdutoRepository produtoRepository) {
        this.categoriaRepository = categoriaRepository;
        this.pedidoRepository = pedidoRepository;
        this.produtoRepository = produtoRepository;
    }

    public void salvar(Categoria categoria, Pedido pedido, Produto produto) {
        categoriaRepository.save(categoria);
        pedidoRepository.save(pedido);
        produtoRepository.save(produto);
    }
}
package com.desafioalura.gerenciadorpedidos;

import com.desafioalura.gerenciadorpedidos.main.Main;
import com.desafioalura.gerenciadorpedidos.model.Categoria;
import com.desafioalura.gerenciadorpedidos.model.Pedido;
import com.desafioalura.gerenciadorpedidos.model.Produto;
import com.desafioalura.gerenciadorpedidos.repository.ICategoriaRepository;
import com.desafioalura.gerenciadorpedidos.repository.IPedidoRepository;
import com.desafioalura.gerenciadorpedidos.repository.IProdutoRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

import java.time.LocalDate;

@SpringBootApplication
public class GerenciadorPedidosApplication implements CommandLineRunner {
    @Autowired
    private ICategoriaRepository categoriaRepository;
    @Autowired
    private IPedidoRepository pedidoRepository;
    @Autowired
    private IProdutoRepository produtoRepository;
    public static void main(String[] args) {
        SpringApplication.run(GerenciadorPedidosApplication.class, args);

    }

    @Override
    public void run(String... args) throws Exception {
        Categoria categoria = new Categoria("Bebidas");
        Pedido pedido = new Pedido(LocalDate.now());
        Produto produto = new Produto("Refrigerante", 15.00);
        Main main = new Main(categoriaRepository, pedidoRepository, produtoRepository);
        main.salvar(categoria, pedido, produto);

        System.out.println("Dados Salvos com sucesso!");

    }
}

![](Sucesso ao salvar dados )

1 resposta

Oii, Márcio!

Obrigada por compartilhar seu código.

Seu projeto tá muito bem estruturado! Você aplicou os conceitos de entidades, repositórios e fez um ótimo uso do CommandLineRunner para executar os testes na inicialização da aplicação. Está seguindo de forma correta os padrões do Spring Data JPA e o relacionamento com o banco de dados.

Continue firme nos estudos.

Conteúdos relacionados
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!