Differenz zwischen @Size, @Length und @Column (length = value) bei Verwendung von JPA und Hibernate
Was ist der Unterschied zwischen der Validierungsprüfung der folgenden drei Felder?
@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
}
Ich habe gelesen, dass der erste mit DDL-Sachen zu tun hat. Die zweite dient der Bean-Validierung. Die dritte Option ist für die Überprüfung des Ruhezustands vorgesehen.
Ist das korrekt? Was ich immer noch nicht verstehe ist: Wann muss ich welches verwenden? Wann wird eine dieser Anmerkungen ausgelöst?
Edit: Stellen Sie sich folgende Situation vor: Unter der Voraussetzung, dass eine Entität mit einem Feld vom Typ string mit der Länge 13 entwickelt werden muss. Welche der oben genannten Methoden würden Sie wählen? Oder noch besser: Welche Fragen müssen Sie sich stellen, um herauszufinden, welche für Ihre Zwecke geeignet sind?