77

ドメインの検証を行いたい。私のオブジェクトには、1 つの整数があります。

今私の質問は次のとおりです。

@Min(SEQ_MIN_VALUE)
@Max(SEQ_MAX_VALUE)
private Integer sequence;

 @Size(min = 1, max = NAME_MAX_LENGTH)
 private Integer sequence;

整数の場合、ドメインの検証に適しているのはどれですか?
それらの違いは何ですか?

ありがとう。

4

3 に答える 3

145

@Minおよび(数値を表す)、、など@Maxの数値フィールドと、それぞれのプリミティブ ラッパーを検証するために使用されます。Stringintshortbyte

@Sizeフィールドの長さの制約をチェックするために使用されます。

ドキュメントに従って、、、およびwhileを@SizeサポートしString、プリミティブとそのラッパーをサポートします。ドキュメントを参照してください。CollectionMaparrays@Min@Max

于 2012-06-25T13:12:30.203 に答える
24
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 インスタンスのフィールドに適用される制約を宣言するために使用します。

manufacturernull になることはありません

licensePlatenull になることはなく、2 ~ 14 文字の長さでなければなりません

seatCount少なくとも 2 であること。

于 2012-06-25T12:33:39.950 に答える