Estou estudando relacionamentos e me veio a seguinte dúvida:
Tenho uma situação onde várias pessoas possuem várias características, ou seja um relacionamento many to many. A parte de como configura o relacionamento eu compreendi (por favor me corrijam se estiver errado):
Classe pessoa
@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinTable(name="pessoas_caracteristicas",
joinColumns={@JoinColumn(name="id_pessoa", referencedColumnName="id_pessoa")},
inverseJoinColumns={@JoinColumn(name="id_caracteristicas", referencedColumnName="id_caracteristica")})
private List<Caracteristica> caracteristicas;
Classe caracterítica
@ManyToMany(mappedBy = "caracteristicas", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private List<Pessoa> pessoas;
Baseado nisso fiz o seguinte DTO que se chama DadosCadastroPessoa:
public record DadosCadastroPessoa(
Long id,
@NotBlank
String nome,
String nome_social,
@NotNull
LocalDateTime data_nascimento,
@CpfValidator.Cpf
String cpf,
@NotNull
List<Caracteristica> caracteristicas) {
}
A minha dúvida é neste caso como faria para salvar os dados da lista e seus respectivos id's irem para a tabela de quebra