web-dev-qa-db-ja.com

BigDecimalのJPA @Sizeアノテーション

MySQL DECIMAL(x,y)列に@Sizeアノテーションを使用するにはどうすればよいですか?

BigDecimalを使用していますが、@Sizemaxを含めようとしても機能しません。これが私のコードです:

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

Hibernate Validatorを直接使用し、次のように @ Digits でフィールドに注釈を付けることができます。

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

参照 この答え

@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)")

検証方法を尋ねる場合は、@ Minおよび@Maxアノテーション、または@DecimalMinおよび@DecimalMaxアノテーションを使用する必要があります。

@Sizeは、列を定義するのではなく、プロパティを検証するために使用される注釈です。 @Sizeは通常、文字列またはコレクションが特定のサイズであることを保証するために使用されます。

5
zmf