以下三个字段的验证检查有什么区别?
@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 }
我读到第一个与DDL的东西有关.第二个是bean验证.第三个是用于休眠验证.
那是对的吗?我还不明白的是:我什么时候需要使用哪一个?这些注释中的一个何时触发?
编辑:考虑以下情况:鉴于需要开发一个具有长度为13的字符串类型字段的实体.您会选择上述哪种方法?甚至更好:你有什么问题要问自己找出哪一个适合你的目的?
@Column
是JPA注释,length
模式生成工具使用该属性来设置关联的SQL列长度.
@Size
是一个Bean Validation批注,用于验证关联的String是否具有长度受最小值和最大值限制的值.
@Length
是一个特定于Hibernate的注释,具有与之相同的含义 @Size
因此,无论2.
并且3.
应该验证String
使用Bean验证长度.我选择2.
因为它是通用的.