Настраиваемое сообщение об ошибке в аннотации @Digits - PullRequest
0 голосов
/ 03 апреля 2020

Я пытаюсь проверить поле BigDecimal с помощью API проверки Hibernate - используя @Digits аннотацию

@Digits(integer = 12, fraction = 2, 
        message = "numeric value out of bounds (min 0.01, max 999999999999.99)")
private BigDecimal amount = null;

Когда я передаю значение суммы 123.123, я получаю сообщение об ошибке

'Classname.amount' цифра c значение вне границ (мин. 0,01, макс. 999999999999,99)

, но проблема не в недопустимом диапазоне, а в формате. Мы допускаем только 2 дробных числа.
Я хочу получить два сообщения, одно для недопустимого диапазона, а второе - для недопустимой дроби.

возможно ли иметь два разных сообщения?

Я пробовал интерполяцию с выражениями сообщений, но это имеет немного ограниченные возможности

Ответы [ 2 ]

0 голосов
/ 03 апреля 2020
@NotNull
@Positive
@Digits(integer = 12, fraction = 2, message = "${validatedValue > 999999999999.99 ? "
            + "'numeric value out of bounds (min 0.01, max 999999999999.99)':"
            + "'value cannot contain more than two fractional digits.'}")
    private BigDecimal amount;

Мне удалось решить проблему с помощью интерполяции с выражениями сообщений

0 голосов
/ 03 апреля 2020

вы можете попробовать

@DecimalMin( value = "0.01", message ="too small")
@DecimalMax( value = "99999999999", message ="too big")
@Digits( integer=12, fraction=2, message = "bad format")
private BigDecimal amount = null;
...