我正在使用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文档,而不必记住每个情况下哪些字段应该存在或不存在。我的两美分;)也如果你可以让他们不可变... –