我的编辑 API 有这个服务方法,它将我的 pojo 类映射到实体类以进行更新操作。 CustomerDetail 是我的 Dto 类。
public CustomerRegistration editCustomerDetails
(Long id, CustomerDetail customerDetail) throws JsonMappingException
{
CustomerRegistration customer = customerRegistrationRepository.findByRegistrationId(id);
if (customer == null)
return null;
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.updateValue(customer, customerDetail);
customer.setModifiedTs(Timestamp.valueOf(LocalDateTime.now()));
customerRegistrationRepository.save(customer);
return customer;
}
假设我想更新 customerID 1 的客户详细信息,我的请求正文由以下字段组成:
{
"firstName":"Leon",
"middleName":"",
"lastName":"Kennedy",
"addr1":"cross",
"addr2":"new"
}
我的客户表已经有一个 customerID 1 的中间名。我想忽略表中 middleName 字段的更新操作,因为请求正文有一个空字符串。就我而言,它在表中被设置为 null/空。我怎样才能避免这种情况?
我的pojo类已经用@JsonInclude(Ininclude.NON_NULL)注释了
尝试更改注释值
@JsonInclude(Include.NON_NULL) // ignores null values
致:
@JsonInclude(Include.NON_EMPTY) // ignores empty values (empty string, null, etc)