В моей текущей реализации Проверка для двух полей SpecialTransactionDTO
(transactionMetric
и transactionRank
) работает во всех случаях. Теперь его родительский класс TransactionDTO, который я получаю как @RequestBody, содержит логическое поле shouldValidate
, которое указывает, проверять ли два поля SpecialTransactionDTO
или нет.
Как настроить (отключить) проверку для случаев, когда значение shouldValidate
flag равно false?
@PostMapping("{id}/transaction/")
@ApiOperation(value = "Create transaction", httpMethod = "POST", response = TransactionDTO.class)
public ResponseEntity<Object> createTransaction(@PathVariable("id") Long accountId,
@Validated({TransactionNumber.class})
@RequestBody TransactionDTO transaction)
throws NotFoundException, URISyntaxException {
TransactionDTO result = transactionService.createTransaction(accountId, transaction);
return ResponseEntity.created(new URI("api/userAccount/" + accountId)).body(result);
}
@JsonSubTypes({
@JsonSubTypes.Type(value = SpecialTransactionDTO.class, name = SpecialTransactionDTO.TYPE),
@JsonSubTypes.Type(value = TransactionDTO.class, name = TransactionDTO.TYPE)
})
public class TransactionDTO {
@NotNull
private Long id;
@NotNull
private String transactionInitiator;
private Boolean shouldValidate;
private String transactionCode;
}
public class SpecialTransactionDTO extends TransactionDTO {
@NotNull
private Long userId;
@Pattern(regexp = "0|\\d{8,11}")
private String transactionMetric;
@Pattern(regexp = "\\d{1,3}")
private String transactionRank;
}