Diferença entre @Size, @Length e @Column (length = value) ao usar JPA e Hibernate
Qual é a diferença entre a verificação de validação dos três campos a seguir?
@Entity
public class MyEntity {
@Column(name = "MY_FIELD_1", length=13)
private String myField1;
@Column(name = "MY_FIELD_2")
@Size(min = 13, max = 13)
private String myField2;
@Column(name = "MY_FIELD_3")
@Length(min = 13, max = 13)
private String myField3;
// getter & setter
}
Eu li que o primeiro tem a ver com coisas DDL. O segundo é para validação de bean. O terceiro é para validação de hibernação.
Isso está correto? O que ainda não entendo é: quando devo usar qual? Quando uma dessas anotações é acionada?
Edit: Pense na seguinte situação: Dado o requisito de desenvolver uma entidade com um campo do tipo string com comprimento 13. Qual dos métodos mencionados acima você escolheria? Ou melhor ainda: quais perguntas você precisa se perguntar para descobrir qual delas atende aos seus objetivos?