Мне также любопытно, как с этим лучше всего справляться.В некоторых проектах, где я мог сделать допущения, такие как «нулевые значения в бине означают, что значение не было затронуто», я написал инструкцию UPDATE, чтобы «обновить» все поля, установив значение столбца в значение бина, если не ноль, иначе устанавливая значение столбца к существующему значению столбца в db.
UPDATE entity
SET propertyA = NVL(newPropertyA, propertyA)
,propertyB = NVL(newPropertyB, propertyB)
,propertyC = NVL(newPropertyC, propertyC)
,...