ドメイン検証を行いたい
私のオブジェクトには1つの整数があります
今、私の質問は私が書くかどうかです
@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
、Map
および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
は決してnullにならない
licensePlate
は決してnullにはならず、2〜14文字の長さでなければなりません
seatCount
は少なくとも2でなければなりません。