Если ваше слияние не работает, скорее всего, вы создаете новый экземпляр с нуля и пытаетесь заполнить только значение, которое вы хотите изменить. Это приводит к слиянию, перезаписывая все остальные поля с нулем. Не используйте em.merge на незавершенных объектах, поскольку он объединяет каждое управляемое поле JPA - он не может знать, что вы хотели, и должен объединить все состояние объекта.
Вместо этого используйте ваши изменения для изменения управляемого экземпляра. Простой пример:
em.getTransaction().begin();
YourEntity instance = em.find(YourEntity.class, id);
instance.setYourAttribute(newValue);
em.getTransaction().commit();
Или отдельный экземпляр, считанный с EM, который вы позже используете em.merge.