我想做一些域验证。在我的对象中,我有一个整数。
现在我的问题是:如果我写
@Min(SEQ_MIN_VALUE)
@Max(SEQ_MAX_VALUE)
private Integer sequence;
和
@Size(min = 1, max = NAME_MAX_LENGTH)
private Integer sequence;
如果它是一个整数,哪一个适合域验证?
谁能解释一下它们之间有什么区别?
谢谢。
我想做一些域验证。在我的对象中,我有一个整数。
现在我的问题是:如果我写
@Min(SEQ_MIN_VALUE)
@Max(SEQ_MAX_VALUE)
private Integer sequence;
和
@Size(min = 1, max = NAME_MAX_LENGTH)
private Integer sequence;
如果它是一个整数,哪一个适合域验证?
谁能解释一下它们之间有什么区别?
谢谢。
@Min
并@Max
用于验证可以是String
(表示数字)、int
、short
等的数字字段byte
及其各自的原始包装器。
@Size
用于检查字段的长度限制。
根据文档@Size
支持String
,Collection
和whileMap
并支持原语及其包装器。请参阅文档。arrays
@Min
@Max
package com.mycompany;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
public class Car {
@NotNull
private String manufacturer;
@NotNull
@Size(min = 2, max = 14)
private String licensePlate;
@Min(2)
private int seatCount;
public Car(String manufacturer, String licencePlate, int seatCount) {
this.manufacturer = manufacturer;
this.licensePlate = licencePlate;
this.seatCount = seatCount;
}
//getters and setters ...
}
@NotNull
,@Size
并且@Min
是所谓的约束注释,我们使用它来声明约束,这些约束将应用于 Car 实例的字段:
manufacturer
永远不会为空
licensePlate
不得为空,长度必须在 2 到 14 个字符之间
seatCount
应至少为 2。
从文档中我得到的印象是,在您的示例中,它打算使用:
@Range(min= SEQ_MIN_VALUE, max= SEQ_MAX_VALUE)
检查带注释的值是否介于(包括)指定的最小值和最大值之间。支持的数据类型:
BigDecimal、BigInteger、CharSequence、byte、short、int、long 以及原始类型的相应包装器