我在我的RESTful服务(Spring,Java)中实现了PATCH
请求方法。我在控制器方法中使用DTO对象。我正在使用Dozer将这些DTO映射到实体。
使用PATCH
请求方法我有一个明显的问题:具有null值的字段可能意味着实体字段应该更新为null,或者实体字段应该保持不变。浏览了互联网上的一些帖子后,我决定在uri参数中接受一个明确无效的字段列表(我将这个列表称为nullFields
)。如果接收的值为空,则所有其他字段将保持不变。
现在我可以看到实现此解决方案的3种可能方法:
nullFields
显式设置为null。我将不得不迭代nullFields
的值并调用实体的适当setter方法。我不喜欢这个选项,因为每次添加,删除或重命名对象字段时,我都必须更改此字段到设置器映射。nullFields
中包含的字段。但我无法找到如何做到这一点。所以,我的问题是,有可能吗?我还要感谢实现PATCH
请求方法的任何其他方法。我考虑过使用JSON对象而不是DTO,但除非我别无选择,否则我不太喜欢这种替代方案。