¿Cuál es la diferencia entre la verificación de validación de los siguientes tres campos?
@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
}
Leí que el primero tiene que ver con cosas de DDL. El segundo es para la validación de frijoles. El tercero es para la validación de hibernación.
¿Es eso correcto? Lo que sigo sin entender es: ¿Cuándo tengo que usar cuál? ¿Cuándo se activa una de estas anotaciones?
Editar: Piense en la siguiente situación: dado el requisito de desarrollar una entidad con un campo de tipo cadena con una longitud de 13. ¿Cuál de los métodos mencionados anteriormente elegiría? O mejor aún: ¿Qué preguntas tienes que hacerte para saber cuál se adapta a tus propósitos?
La columna no tiene nada que ver con la VALIDACIÓN. El tamaño es estándar JPA. La longitud es propiedad. La respuesta debería quedar clara a partir de eso… @Size
–Neil Stockton
4 de enero de 2016 a las 14:09
¿La longitud es propietaria? Entonces, ¿no puedo usar esto en general?
– Chris311
04/01/2016 a las 14:36
Como dice la respuesta, es una extensión de proveedor específica de Hibernate. No tiene sentido usarlo (aparte de las personas que querrían vincularse a una implementación de JPA sin ningún motivo)
–Neil Stockton
4 de enero de 2016 a las 14:39