我正在使用Jersey(JaxRS和Jackson)。Jersey:針對一個DTO的不同JSON過濾器
我有一個學生DTO。
class StudentDTO {
private Integer id;
private String name, className, grade;
private String createdAt, modifiedAt;
// getter, setter for all private members above
我想讓DTO在創建,讀取和更新中重複使用。
但是,對於創建,只允許name,className和grade。對於更新,只允許className和grade。
我目前的解決方案是使用三個不同的DTO類,一個用於創建,一個用於更新,另一個用於讀取。
如何做到這一點只有一個DTO類?
您可以嘗試使用所需的參數重載構造函數.. – Coder
重載構造函數不能用於過濾請求參數。傑克遜將映射到類成員,即使他們是私人的,而不是getter/setter/constructor。 – Kuzunoha
我個人認爲3個DTO在語義上更好。它給出了適當的API文檔,而不必記住每個情況下哪些字段應該存在或不存在。我的兩美分;)也如果你可以讓他們不可變... –