Разница между @Size, @Length и @Column (длина = значение) при использовании JPA и Hibernate
В чем разница между проверкой правильности следующих трех полей?
@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
}
Я читал, что первое связано с DDL. Второй - для проверки бина. Третий - для проверки гибернации.
Это верно? То, что я до сих пор не понимаю, это: когда мне нужно использовать какой? Когда срабатывает одна из этих аннотаций?
Изменить: Подумайте о следующей ситуации: Учитывая требование для разработки сущности с полем типа строки длиной 13. Какой из вышеупомянутых методов вы бы выбрали? Или даже лучше: какие вопросы вы должны задать себе, чтобы узнать, какой из них соответствует вашим целям?