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:
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
}
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> {
}
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!