Spring?Boot使用Hibernate-Validator校驗參數(shù)時的長度校驗方法詳解
今天在使用Validator框架數(shù)據(jù)驗證的時候碰到了三個類似的注解,都是用來限制長度,但是用法上有區(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 // 級聯(lián)校驗,該注解將會校驗自定義類 private OrderItem detailInfo; }
@Size是一個Bean驗證注釋,用于驗證關(guān)聯(lián)的String具有的長度受最小值和最大值限制的值.
@Length是一個Hibernate特定的注釋,與@Size具有相同的含義;
兩者的區(qū)別:
? 用@length限制長度為100,@length驗證的應(yīng)該為100個字符的長度,如99個漢字+2個數(shù)字,@length并不會報錯;
? 但用@size限制長度為100,同樣情況下則會報錯,即超出限制長度
? 綜上,@length限制長度為字符長度,@size限制長度為個數(shù)長度,@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注解當中設(shè)置length屬性。這是一個JPA注釋,并且length屬性由模式生成工具用于設(shè)置關(guān)聯(lián)的SQL列長度,與DDL有關(guān)
總結(jié)
到此這篇關(guān)于Spring Boot使用Hibernate-Validator校驗參數(shù)時的長度校驗方法的文章就介紹到這了,更多相關(guān)SpringBoot Validator校驗參數(shù)長度校驗內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java+swing+Mysql實現(xiàn)商品銷售管理系統(tǒng)
基礎(chǔ)扎不扎實只有在實戰(zhàn)中才能顯現(xiàn),本篇文章手把手帶你用Java+swing+Mysql實現(xiàn)商品銷售管理系統(tǒng),大家可以在過程中查缺補漏,提升水平2022-01-01詳解Java如何使用責任鏈默認優(yōu)雅地進行參數(shù)校驗
項目中參數(shù)校驗十分重要,它可以保護我們應(yīng)用程序的安全性和合法性。這篇文章主要介紹了如何使用責任鏈默認優(yōu)雅地進行參數(shù)校驗,需要的可以參考一下2023-03-03如何使用會話Cookie和Java實現(xiàn)JWT身份驗證
這篇文章主要介紹了如何使用會話Cookie和Java實現(xiàn)JWT身份驗證,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下2021-03-03詳解mybatis 批量更新數(shù)據(jù)兩種方法效率對比
這篇文章主要介紹了詳解mybatis 批量更新數(shù)據(jù)兩種方法效率對比,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-02-02SpringBoot集成Swagger使用SpringSecurity控制訪問權(quán)限問題
這篇文章主要介紹了SpringBoot集成Swagger使用SpringSecurity控制訪問權(quán)限問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05