我想做一些域验证。在我的对象中,我有一个整数。
现在我的问题是:如果我写
@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 以及原始类型的相应包装器