Qual è la differenza tra il controllo di convalida dei seguenti tre campi?Differenza tra @Size, @Length e @Column (lunghezza = valore)
@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
}
Ho letto che il primo ha a che fare con materiale DDL. Il secondo è per la convalida del bean. Il terzo è per la convalida dell'ibernazione.
È corretto? Quello che ancora non capisco è: quando devo usare quale? Quando si attiva una di queste annotazioni?
Modifica: Pensa alla seguente situazione: Dato il requisito di sviluppare un'entità con un campo di tipo stringa con lunghezza 13. Quale dei metodi sopra menzionati sceglieresti? O ancora meglio: quali domande devi porci per scoprire quale è adatto ai tuoi scopi?
La colonna non ha nulla a che vedere con VALIDAZIONE. Le dimensioni sono standard JPA. La lunghezza è di proprietà. La risposta dovrebbe essere chiara da quella ... @ Size –
La lunghezza è proprietaria? Quindi non sono autorizzato a usare questo in generale? – Chris311
Come dice la risposta, si tratta di un'estensione del venditore specifica per Hibernate. Non ha senso usarlo (a parte persone che vorrebbero legarsi a un'implementazione JPA senza motivo) –