web-dev-qa-db-ja.com

@size(max = value)と@min(value)の違い@max(value)

ドメイン検証を行いたい

私のオブジェクトには1つの整数があります

今、私の質問は私が書くかどうかです

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

そして

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

ドメイン検証に適切な整数である場合。

誰がそれらの違いは何ですか?

ありがとう。

49
JOHND

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

@Sizeは、フィールドの長さの制約を確認するために使用されます。

ドキュメントごとに@SizeStringCollectionMapおよびarraysをサポートしますが、@Minおよび@Maxは、プリミティブとそのラッパーをサポートします。 ドキュメント を参照してください。

94
Sunil Chavan
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でなければなりません。

16
Rahul Agrawal