我在这里遇到的问题是HTTP PATCH方法,因为它允许部分更新。
我有一个请求Body,如下所示。
{
"userAssociationStatus": "ACTIVE",
"accountHolderAssociationStatus": "ACTIVE",
}
Bean for request Mapping: -
public class PatchRequestVO {
@CheckEnum(message = "Enumeration value is not found for userAssociationStatus.", enumValue = { "ACTIVE", "INACTIVE" })
private String userAssociationStatus;
@CheckEnum(message = "Enumeration value is not found for accountHolderAssociationStatus.", enumValue = { "ACTIVE", "INACTIVE" })
private String accountHolderAssociationStatus;
//getters and setters
}
check enum是一个自定义注释,用于验证传递的值是否与enumValue列表中的某个元素完全匹配。
我面临的问题是以下两个请求。
{
"accountHolderAssociationStatus": "ACTIVE"
}
在上述请求中, userAssociationStatus 不存在,因此它是PATCH我会忽略它并只更新其他状态。
下一个请求是
{
"userAssociationStatus": null,
"accountHolderAssociationStatus": "ACTIVE"
}
在这个场景中,我想抛出未找到的枚举,因为请求中的对象为null。
在上述两个请求中,当字段等于null且字段不存在时, userAssociationStatus 等于null。所以我无法从请求角度区分发生的事情。
问题是我如何区分不存在的字段和传递为null的值。
如果需要,可以提供更多信息。