Их необходимо проверить (с помощью валидатора), чтобы убедиться, что они содержат только ожидаемые поля. для варианта использования:
- вставить (все поля должны быть проверены и вставлены)
- обновить (только изменено/ измененные поля должны быть проверены и обновлены в базе данных)
- вызван установщик для поля.
Вот пример того, как я решил это с помощью шаблона, позволив Pojos расширить общий класс:
public abstract class AbstractDTO {
private Map modifiedFields = new HashMap();
public AbstractDTO() {
}
@JsonIgnore
@XmlTransient
protected void setAt(String key, Object value) {
this.modifiedFields.put(key, value);
}
@JsonIgnore
@XmlTransient
public void resetModifiedFields() {
this.modifiedFields.clear();
}
@JsonIgnore
@XmlTransient
public Map getModifiedFields() {
return this.modifiedFields;
}
}
Реализация:
public class Product extends AbstractDTO {
private Long productId;
public Long getProductId() {
return this.productId;
}
public void setProductId(Long productId) {
this.productId = productId;
this.setAt("productId", productId);
}
Таким образом, теперь я могу проверять наличие измененных полей:
boolean isModified = pojo.getModifiedFields().containsKey(field.getName());
Подробнее здесь: https://stackoverflow.com/questions/782 ... -detection
Мобильная версия