Я заметил, что BeanUtils.copyProperties(dest, src) имеет странный побочный эффект. Все null Integers
(возможно, Long
, Date
и т.д.) Конвертируют в 0 в оба объекта: source (sic!) И destination. Версия: commons-beanutils-1.7.0
Javadoc:
Скопировать значения свойств из источника bean в пункт назначения bean для все случаи, когда имена свойств одинаковы.
Например:
class User {
Integer age = null;
// getters & setters
}
...
User userDest = new User();
User userSrc = new User();
BeanUtils.copyProperties(userDest, userSrc);
System.out.println(userDest.getAge()); // 0
System.out.println(userSrc.getAge()); // 0
Это может быть очень плохо, если исходный объект фактически изменен. Какое наилучшее решение сделать "реальную" копию объекта с нулевым значением.