Проверка POJO с помощью JSR 303

У меня есть POJO:

public class ClosureCodeReasonRequest {
    @NotNull(message = MessageConstants.CLOSURE_CODE_BLANK_ERROR)
    @NotBlank(message = MessageConstants.CLOSURE_CODE_BLANK_ERROR)
    private String closureCode;

    @NotNull(message = MessageConstants.REASON_TITLE_BLANK_ERROR)
    @NotBlank(message = MessageConstants.REASON_TITLE_BLANK_ERROR)
    @Size(max = 50, message = MessageConstants.REASON_TITLE_TOO_LONG)
    private String reasonTitle;

    @NotEmpty
    private List<String> programList;

    @NotNull
    @NotBlank
    private String isActive;

    @NotNull
    @NotBlank
    private Long version;
}

В указанном выше POJO значение isActive может быть либо «истинным», либо «ложным», а длина programList может быть либо 1, либо 2, а содержимое будет находиться между «Test1» и «Test2».

Есть ли какие-либо встроенные аннотации, которые можно использовать для этих требований, или мне нужно создать новую?

Есть ли причина, по которой код не private boolean active вместо private String isActive? @Size(min = 1, max = 2) private List<String> programList подойдет для второго требования. JSR-303 не имеет механизма для проверки содержимого Collection. Вам нужно будет написать собственный валидатор для проверки содержимого коллекции.

manish 15.03.2018 12:33
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
36
1

Ответы 1

А как насчет использования @Шаблон?

для isActive вы можете использовать @Pattern(regexp = "(true|false)") для списка программ вы могли бы использовать @Size(2) с @Pattern(regexp = "(Test1|Test2)?

Я не тестировал это, но вы можете сделать это самостоятельно.

Другие вопросы по теме