Olá , estou fazendo um novo projeto com base nos estudos daqui, mas estou com uma dúvida que não consegui resolver/entender...
Estou fazendo uma API Rest de uma escola de dança, na qual cadastro professoras e alunas, criei um ENUM com as modalidades das aulas, porém devo poder cadastrar mais de uma modalidade para cada professora/aluna, como posso fazer isso? Vou deixar abaixo o meu código, se puderem ajudar, agradeço
Minha Entidade:
package burlesca.escola.api.professoras;
import jakarta.persistence.*;
import lombok.*;
@Table(name = "professoras")
@Entity(name = "Professora")
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(of = "id")
public class Professora {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String nome;
private String email;
private String telefone;
@Enumerated(EnumType.STRING)
private Modalidade modalidade;
public Professora(ProfessoraDTO dados) {
this.nome = dados.nome();
this.email = dados.email();
this.telefone = dados.telefone();
this.modalidade = dados.modalidade();
}
}
Meu DTO
package burlesca.escola.api.professoras;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import java.util.List;
public record ProfessoraDTO(
@NotBlank
String nome,
@NotBlank @Email
String email,
@NotBlank
String telefone,
@NotNull
Modalidade modalidade){}
Minha classe controller:
package burlesca.escola.api.controller;
import burlesca.escola.api.professoras.ProfessoraDTO;
import burlesca.escola.api.professoras.ProfessoraRepository;
import burlesca.escola.api.professoras.Professora;
import jakarta.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/professoras")
public class ProfessoraController {
@Autowired
private ProfessoraRepository repository;
@PostMapping
@Transactional
public void cadastrar(@RequestBody @Valid ProfessoraDTO dados){
repository.save(new Professora(dados));
}
}
Meu ENUM:
package burlesca.escola.api.professoras;
public enum Modalidade {
BOLLYWOOD,
BURLESQUE,
BALLET,
SALSA_SHINES;
}