Para ficar mais fácil de entender minha duvida, vou resumir duas classes Curso
e CursoForm
.
// pacote e importações omitidas
@Entity
public class Curso {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(length = 200, unique = true, nullable = false)
private String nome;
// getters e setters omitidos
}
// pacote e importações omitidas
@ApiModel(description = "Formulário utilizado para cadastro/atualização de um novo Curso")
public class CursoForm {
@NotNull
@NotEmpty
@Size(max = 200)
@ApiModelProperty(value = "Nome do curso", example = "Ciência da Computação")
private String nome;
// getters, setters e demais métodos omitidos
}
Com base nessas classes, se eu quiser fazer a validação do formulário quando estou chamando a API para criar um novo curso, eu coloco a anotação @Valid
antes do parâmetro da requisição correspondente ao formulário. O problema que identifiquei nisso é que se eu mudar o length do atributo nome
da classe Curso
, eu tenho que ajustar também a classe CursoForm
. Minha duvida é: existe alguma anotação ou abordagem para evitar essa atualização nas duas classes? Conheci esse padrão DTO no curso de API Rest com Spring Boot.