Мне нужно проверить, отличается ли моя действительная сущность от старой.
Я использую отражение, потому что мой метод должен быть стандартизирован.
Для каждого столбца я обновляю значение тогда и только тогда, когда оно не равно нулю (поскольку я читаю его из CSV, а столбец может быть не указан).
for(Field column : fields){
column.setAccessible(true);
Object newValue = column.get(myObject);
if( newValue != null && !newValue.equals(column.get(oldObject))){
column.set(oldObject, newValue);
}
}
this.entitymanager.merge(oldObject)
Если я сделаю такие изменения, запрос ОБНОВЛЕНИЕ не будет выполнен.
Если я меняю значение обычным образом oldobject.setValue(newValue)
, запрос выполняется и запись обновляется.
Почему менеджер сущностей не выполняет запрос UPDATE, если я изменяю значение с помощью отражения?