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

Duvida na classe DTO

Boa tarde Prof. Rodrigo!

Me surgiu uma dúvida em relação a classe DTO!

Eu crio uma classe DTO a fim de passar atributos da minha classe Model sem passar toda aquela relação de entidade que ela tem no banco de dados, correto?

Se em minha classe modelo eu tenho alguns mapeamentos nos atributos como @ManyToOne, @ManyToMany, eu devo replicar esse mapeamento no DTO também? Tem algo relacionado com chaves estrangeiras?

Grande Abraço!

1 resposta
solução!

Oi Luís,

Nesse caso o DTO de entrada, com os dados vindos do frontend, vai ter apenas o id do relacionamento. Exemplo:

public class CadastroLivroForm {

    private String titulo;
    private String descricao;
    private BigDecimal preco;
    private Integer numeroDePaginas;
    private Long idAutor;

    //getters e setters
}

No frontend terá uma combobox para o usuário escolher o autor do livro sendo cadastrado, sendo que na requisição será enviado apenas o id do registro selecionado.

Já no dto de saída, dados enviados da API para o frontend, se você quiser devolver os dados do relacionamento pode ter uma composição de objetos:

public class AutorDto {

    private Long id;
    private String nome;
    private String email;

    //getters e setters
}
public class LivroDto {

    private Long id;
    private String titulo;
    private BigDecimal preco;
    private Integer numeroDePaginas;
    private AutorDto autor;

    //getters e setters
}

Bons estudos!