Перво-наперво вместо проверки только нулевого значения, как показано ниже:
if (patch.getDeliveryName() != null) {
order.setDeliveryName(patch.getDeliveryName());
}
Вы можете сделать это одной строкой:
order.setDeliveryName(StringUtils.isEmpty(patch.getDeliveryName()) ? "" : patch.getDeliveryName());
Также с помощью пружинного метода проверяет нулевые и пустые значения.
А для точки "b" вы можете использовать следующий код:
BeanUtils.copyProperties(bean2, bean1);
добавить следующую зависимость в pom.xml
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.9.3</version>
</dependency>