web-dev-qa-db-fra.com

Annotation JPA @Size pour BigDecimal

Comment utiliser l'annotation @Size Pour les colonnes MySQL DECIMAL(x,y)?

J'utilise BigDecimal, mais lorsque j'essaie d'inclure le @Sizemax cela ne fonctionne pas. Voici mon code:

@Size(max = 7,2)
@Column(name = "weight")
private BigDecimal weight;
13
ThreaT

Vous pouvez utiliser directement le validateur Hibernate et annoter votre champ avec @ Digits comme ceci:

@Digits(integer=5, fraction=2)
@Column(name = "weight")
private BigDecimal weight;
22
mavroprovato

Voir cette réponse

@Column(nullable= false, precision=7, scale=2)    // Creates the database field with this size.
@Digits(integer=9, fraction=2)                    // Validates data when used as a form
private BigDecimal myField;
13
borjab
@Column(columnDefinition = "DECIMAL(7,2)")

Si vous demandez comment valider, vous devez utiliser les annotations @Min et @Max ou les annotations @DecimalMin et @DecimalMax.

@Size est une annotation utilisée pour valider une propriété, pas pour définir sa colonne. @Size est généralement utilisé pour garantir qu'une chaîne ou une collection a une certaine taille.

5
zmf