我目前正在開發一個應用程式,我正在內部類上添加一些驗證,例如@NotNull, @Min, @Max, etc.
為了使驗證作業,我需要@Valid在每個使用內部類的欄位上添加。有沒有辦法避免@Valid在每個物件上添加,而是在類上添加一些注釋,以便它可以適用于該類中的所有欄位?
我目前正在使用以下庫來實作驗證:
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-hibernate-validator</artifactId>
</dependency>
我試圖@Validated在類上添加,但似乎這個注釋在這個 Maven 依賴項中不可用。有人可以讓我知道我需要改變什么嗎?
以下是一個有效的簡單示例,但我想洗掉@Valid我必須在每個欄位上添加的內容。如果我不添加@Valid,那么這些內部類將不會被驗證。
public class Book {
@NotNull(message="Book ID cannot be NULL")
private int bookId;
@Valid
private List<Author> author;
@Valid
private List<Publication> author;
}
public class Author {
@NotNull(message="Author ID cannot be NULL")
private int authorID;
@NotNull(message="Author Name cannot be NULL")
private String name;
}
public class Publication {
@NotNull(message="Publication ID cannot be NULL")
private int authorID;
@NotNull(message="Publication Name cannot be NULL")
private String name;
}
uj5u.com熱心網友回復:
沒有辦法做你想做的事,除非你撰寫自己的 Quarkus 擴展,它將在構建時添加注釋。
不過,這將是一些相當復雜的作業,因為您需要添加一些位元組碼轉換才能將注釋添加到您想要的位置。
此外,您應該在eg內而不是在欄位級別添加@Valid注釋。這種方式更加優化。ListList<@Valid Publication>
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/447305.html
下一篇:如果陣列長度為0,如何剝離陣列
