JPA @аннотация для BigDecimal

Как использовать аннотацию @Size для столбцов MySQL DECIMAL(x,y)?

Я использую BigDecimal, но когда я пытаюсь включить @Size max, он не работает. Вот мой код:

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

Ответ 1

Вы можете напрямую использовать Hibernate Validator и аннотировать ваше поле @Digits следующим образом:

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

Ответ 2

См. этот ответ

@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;

Ответ 3

@Column(columnDefinition = "DECIMAL(7,2)")

Если вы спрашиваете, как вы должны проверять, вы должны использовать аннотации @Min и @Max или аннотации @DecimalMin и @DecimalMax.

@Size - это аннотация, используемая для проверки свойства, а не для определения его столбца. @Size обычно используется, чтобы гарантировать, что строка или коллекция имеют определенный размер.