У меня есть 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».
Есть ли какие-либо встроенные аннотации, которые можно использовать для этих требований, или мне нужно создать новую?




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