Java Pojos — обнаружение вызова сеттера (прикосновение к полю)JAVA

Программисты JAVA общаются здесь
Anonymous
Java Pojos — обнаружение вызова сеттера (прикосновение к полю)

Сообщение Anonymous »

Pojos часто используются в качестве моделей/DTO для вставки/обновления данных в базу данных.
Их необходимо проверить (с помощью валидатора), чтобы убедиться, что они содержат только ожидаемые поля. для варианта использования:
  • вставить (все поля должны быть проверены и вставлены)
  • обновить (только изменено/ измененные поля должны быть проверены и обновлены в базе данных)
Чтобы сделать это возможным, было бы полезно, если бы язык Java уже содержал механизм отслеживания «модифицированный» в pojos. «Измененным» для поля будет:
  • вызван установщик для поля.
Может ли кто-нибудь помочь мне решить такое обнаружение вызовов сеттера, используя как можно меньше шаблонов?

Вот пример того, как я решил это с помощью шаблона, позволив 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

Вернуться в «JAVA»