Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Relacionamento entre tabelas com Spring Boot

Gostaria de saber se há algum conteúdo ou curso nesta plataforma que aborde esse tópico. Tenho interesse em criar um projeto de lista de tarefas (To-Do List) em que cada usuário tenha suas próprias tarefas, estabelecendo uma relação de um para muitos.

1 resposta
solução!

Olá João!

Embora o curso de Spring Boot 3 que você concluiu não aborde diretamente o tópico de relacionamentos entre tabelas, você pode aplicar alguns dos conceitos aprendidos para implementar isso. Vou te dar uma ideia de como você pode começar:

  1. Modelagem das Entidades:

    • Usuário: Esta entidade representará os usuários do seu sistema.
    • Tarefa: Esta entidade representará as tarefas individuais de cada usuário.

    Você pode criar essas entidades no pacote domain do seu projeto Spring Boot.

    @Entity
    public class Usuario {
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private Long id;
        private String nome;
        
        @OneToMany(mappedBy = "usuario")
        private List<Tarefa> tarefas = new ArrayList<>();
        
        // Getters e setters
    }
    
    @Entity
    public class Tarefa {
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private Long id;
        private String descricao;
        private Boolean concluida;
        
        @ManyToOne
        private Usuario usuario;
        
        // Getters e setters
    }
    
  2. Repositórios:

    • Crie interfaces de repositório para Usuario e Tarefa no pacote infra.
    public interface UsuarioRepository extends JpaRepository<Usuario, Long> {
    }
    
    public interface TarefaRepository extends JpaRepository<Tarefa, Long> {
    }
    
  3. Controladores:

    • Você pode adicionar métodos em um novo controlador, como TarefaController, para manipular a criação e gestão de tarefas.
    @RestController
    @RequestMapping("/tarefas")
    public class TarefaController {
        
        @Autowired
        private TarefaService tarefaService;
        
        @PostMapping
        @Transactional
        public ResponseEntity<CadastroTarefaResponse> criarTarefa(@RequestBody @Valid CadastroTarefaRequest dto, @AuthenticationPrincipal Usuario logado, UriComponentsBuilder uriBuilder) {
            var response = tarefaService.cadastrar(dto, logado);
             var uri = uriBuilder.path("/tarefas/{id}").buildAndExpand(response.getId()).toUri();
             return ResponseEntity.created(uri).body(response);
        }
        
        // Outros métodos conforme necessário
    }
    

Essas são diretrizes básicas para começar seu projeto de lista de tarefas com relacionamentos entre entidades no Spring Boot. Você pode precisar ajustar e expandir conforme as necessidades específicas do seu projeto.

Espero ter ajudado e bons estudos!