web-dev-qa-db-fra.com

différence entre @size (max = valeur) et @min (valeur) @max (valeur)

Je veux faire une validation de domaine

dans mon objet j'ai un entier,

maintenant ma question est si j'écris

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

et

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

S'il s'agit d'un entier, lequel est approprié pour la validation de domaine.

quelqu'un peut-il m'expliquer quelle est la différence entre eux?

Merci.

49
JOHND

@Min et @Max sont utilisés pour valider des champs numériques pouvant être String (représentant un nombre), int, short, byte etc et leurs wrappers primitifs respectifs.

@Size est utilisé pour vérifier les contraintes de longueur sur les champs.

Selon la documentation @Size supporte String, Collection, Map et arrays tant que @Min et @Max supporte les primitives et leurs wrappers. Voir le documentation .

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 et @Min sont des annotations dites de contraintes, que nous utilisons pour déclarer des contraintes, qui doivent être appliquées aux champs d’une instance Car:

manufacturer ne sera jamais nul

licensePlate ne sera jamais nul et devra comporter entre 2 et 14 caractères

seatCount doit être au moins 2.

16
Rahul Agrawal