Jaka jest różnica między sprawdzania poprawności następujących trzech pól?Różnica między @ rozmiar, @ długość i @ kolumna (długość = wartość)
@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
}
Przeczytałem, że pierwszy dotyczy rzeczy DDL. Druga dotyczy sprawdzania fasoli. Trzeci dotyczy sprawdzania hibernacji.
Czy to prawda? To, czego wciąż nie rozumiem, to: kiedy muszę skorzystać z którego? Kiedy uruchamia się jedna z tych adnotacji?
Edytuj: Pomyśl o następującej sytuacji: Biorąc pod uwagę wymóg stworzenia jednostki z polem typu ciąg o długości 13. Które z wyżej wymienionych metod byś wybrał? Albo jeszcze lepiej: na jakie pytania musisz zadać sobie pytanie, które z nich pasuje do twoich celów?
Kolumna nie ma nic wspólnego z WALIDACJĄ. Rozmiar to standard JPA. Długość jest zastrzeżona. Odpowiedź powinna być jasna ... @Size –
Długość jest prawnie zastrzeżona? Więc nie wolno mi tego używać w ogóle? – Chris311
Zgodnie z odpowiedzią jest to specyficzne dla Hibernacji rozszerzenie dostawcy. Nie ma sensu z niego korzystać (poza ludźmi, którzy bez żadnego powodu chcieliby przywiązać się do jednej implementacji JPA) –