我有一个应用程序,我尝试使用PATCH
请求实现部分更新。
现在我有DTO对象从HTTP检索数据,并使用Orika库(配置为mapNulls = false
)映射到JPA实体
到目前为止,这种工作正常,但由于我的DTO对象没有将null
值与未提供的值区分开来,因此它不能用于部分更新。然后,如果我明确地将字段设置为null
,则Orika会忽略它并且值保持不变。
然后我考虑使用通用对象而不是DTO对象,但通过这样做,我将失去@JsonProperty
注释的好处,这对控制哪个字段是access = Access.READ_ONLY
非常有用。
我如何从仿制药世界和DTO世界中受益?有没有办法反序列化为动态DTO?
答案 0 :(得分:0)
目前不支持此功能。您所能做的就是让两个不同的MapperFactory配置为mapNulls = true,另一个配置为mapNulls = false。由于它是纯Java代码,因此无需太多工作即可轻松完成。
最后,您将有一个MapperFacade用于PATCH方法,另一个用于创建更新。
根据服务合同,最好保留DTO。