@Columnis a JPA annotation and thelengthattribute is used by the schema generation tool to set the associated SQL column length.@Sizeis a Bean Validation annotation that validates that the associated String has a value whose length is bounded by the minimum and maximum values.@Lengthis a Hibernate-specific annotation and has the same meaning as@Size
So both 2. and 3. should validate the String length using Bean Validation. I’d pick 2. because it’s generic.