@AllArgsConstructor
@NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = false)
public class RetailerPincodeMapping {
@Id
private String id;
@NotEmpty
@Indexed
private Long retailerId;
@NotEmpty
@Indexed
private Integer pincode;
private boolean active;
@NotEmpty
private String deliveryMode;
@CreatedDate
private Date createdAt;
@LastModifiedDate
private Date lastModifiedAt;
}
В настоящее время класс определяется следующим образом. Идеальный запрос:
{
"retailerId": 239,
"pincode": 40061,
"deliveryMode": "COURIER",
"active": true
}
Предположим, что если явно установить retailerId в значение null или любое другое значение, которое не может быть проанализировано как Long, я получу ошибку (желаемое поведение), но если я пропущу атрибут вообще в запрос, чем он принимает его как ноль (нежелательный)
{
"retailerId" : null //Throws error (desired)
"pincode": 40061,
"deliveryMode": "COURIER",
"active": true
}
{
"pincode": 40061, // Doesn't throw an error (Undesired)
"deliveryMode": "COURIER",
"active": true
}
Как я могу избежать этого? Я хочу, чтобы запрос не прошел, если в нем отсутствуют все необходимые атрибуты.