Spring?Boot使用Hibernate-Validator校驗參數時的長度校驗方法詳解
今天在使用Validator框架數據驗證的時候碰到了三個類似的注解,都是用來限制長度,但是用法上有區(qū)別:
1,@Size和@Length
@Data
public class LoginVo {
@Length(min = 5, max = 17, message = "userName長度須在[5,17]") // 可以為 null,若不為 null,則長度為 [5, 17]
private String userName;
// @Size不能驗證Integer,適用于String
@Size(min = 1, max = 3, message = "password長度須在[1,3]")
private String password;
@Size(min = 1,max = 5,message = "list的Size在[1,5]") // list 可以為 null,若不為 null,則長度為 [1, 5]
private List<String> list;
@NotNull
@Valid // 級聯校驗,該注解將會校驗自定義類
private OrderItem detailInfo;
}@Size是一個Bean驗證注釋,用于驗證關聯的String具有的長度受最小值和最大值限制的值.
@Length是一個Hibernate特定的注釋,與@Size具有相同的含義;
兩者的區(qū)別:
? 用@length限制長度為100,@length驗證的應該為100個字符的長度,如99個漢字+2個數字,@length并不會報錯;
? 但用@size限制長度為100,同樣情況下則會報錯,即超出限制長度
? 綜上,@length限制長度為字符長度,@size限制長度為個數長度,@size為限制長度通用格式
2,@Colunm
@Entity
@Data
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;
}同樣的在實體類當中可以定義@Colunm注解當中設置length屬性。這是一個JPA注釋,并且length屬性由模式生成工具用于設置關聯的SQL列長度,與DDL有關
總結
到此這篇關于Spring Boot使用Hibernate-Validator校驗參數時的長度校驗方法的文章就介紹到這了,更多相關SpringBoot Validator校驗參數長度校驗內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
SpringBoot集成Swagger使用SpringSecurity控制訪問權限問題
這篇文章主要介紹了SpringBoot集成Swagger使用SpringSecurity控制訪問權限問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05

