@Size and @Length are similar which are used to validate the size of a field. The first is a Java-standard annotation and the second is specific to Hibernate. Whereas @Column, is a JPA annotation that we use to control DDL statements.
Example for @Size
This annotation makes the bean independent of JPA and its vendors such as Hibernate
public class Customer {
...
@Size(min = 5, max = 15)
private String fullName;
...
}
Example for @Length
It is Hibernate-specific version of @Size
@Entity
public class Customer {
…
@Length(min = 5, max = 15)
private String fullName;
…
}
Example for @Column
It is used to indicate specific characteristics of the physical database column.
@Entity
public class Customer {
…
@Column(length = 15)
private String fullName;
…
}