我正在嘗試對我的請求的一個屬性應用 not null 驗證,該屬性被指示數量,但它不起作用。我有一個帶有以下端點的 Spring Boot (V2.3.0.RELEASE) 應用程式:
@Validated
public class TestController {
@PostMapping(value = "/test/pay")
public ResponseEntity<IPSPaymentResponse> validatePayt(@Valid @RequestBody InstantPaymentRequest instantPaymentRequest) {
log.debug("start validatePayment method {}", instantPaymentRequest);
....
InstantPaymentRequest 如下:
@Data
@Validated
public class InstantPaymentRequest {
@Valid
private PaymentIdentificationRequest paymentIdentification;
@NotBlank(message = "transactionTypeCode.required")
private String transactionTypeCode;
@Valid
private InstructedAmount instructedAmount;
@Valid
private CustomerRequest debtor;
指示金額如下:
@Data
public class InstructedAmount {
@NotBlank(message = "currency.required")
private String currency;
@NotBlank(message = "value.required")
private String value;
}
基本上,當有效負載中提供了指令金額但例如我錯過了有效負載中的貨幣屬性時,驗證作業正常,正確顯示非空錯誤訊息并且不呼叫我的休息控制器端點。
但是,當有效負載中未提供指令數量時 ,不會顯示強制錯誤訊息并且呼叫了我的休息端點,這是正確的方式還是我遺漏了什么?
我想既然 InstructedAmount 的屬性不能為空,那么 InstructedAmount 也不能??為空/空。
如何在上述場景中使用注釋添加 InstructedAmount not null 驗證?
uj5u.com熱心網友回復:
@NotNull與 一起使用@Valid:
@NotNull
@Valid
private InstructedAmount instructedAmount;
來自https://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/#section-object-graph-validation:
請注意,在級聯驗證期間會忽略空值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/481303.html
