Разница между @size (max = значение) и @min (значение) @max (значение)
Я хочу, чтобы какая-либо проверка домена
в моем объекте у меня есть одно целое число,
теперь мой вопрос в том, что я пишу
@Min(SEQ_MIN_VALUE)
@Max(SEQ_MAX_VALUE)
private Integer sequence;
и
@Size(min = 1, max = NAME_MAX_LENGTH)
private Integer sequence;
Если это целое число, которое подходит для проверки домена.
Может кто-нибудь объяснить мне, в чем разница между ними?
Спасибо.
Ответы
Ответ 1
@Min
и @Max
используются для проверки числовых полей, которые могут быть String
(представляющие число), int
, short
, byte
и т.д. и их соответствующих примитивных оберток.
@Size
используется для проверки ограничений длины на поля.
В соответствии с документацией @Size
поддерживает String
, Collection
, Map
и arrays
, а @Min
и @Max
поддерживает примитивы и их обертки. См. Документацию .
Ответ 2
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
никогда не будет null
licensePlate
никогда не должно быть нулевым и должно быть от 2 до 14 символов
seatCount
должно быть не менее 2.