2016-02-17 2 views
0

em.merge() обновление неинициализированным свойств сущности обнулить ..EntityManager объединить функции настройки, не заданные значения в obect обнулить

@PersistenceContext 
public EntityManager em; 

    em.merge(invoice); 

в моей базе данных он обновляет все значения, которые были установлены в объекте-фактуре, , а также обновляет другие до нуля, так как в объекте-фактуре эти значения равны нулю.

что это альтернатива, так что я буду обновлять только значения объекта.

+0

Возможный дубликат [значения уставок некоторых полей в null с использованием JPA] (http://stackoverflow.com/questions/3870248/setting-values-of-some-fields-to-null-using-jpa) – Pablo

+0

объект в каком состоянии передается для слияния? В каком состоянии находятся «другие» поля? загружен до отсоединения? выгружается? Некоторые реализации отслеживают, что загружается при отсоединении, но, возможно, ваша реализация не –

ответ

0

Объединение работает, сначала выбирая из вашего БД объект u собирается сливаться (в этом случае счет-фактура) и будет проверять каждое поле для изменений. Если они теперь null, они будут установлены в нуль.

Один из способов исправить это - либо пройти по всей сущности, либо вручную выбрать и установить только поля, которые хотите изменить.

+0

благодарит Cremson, я выбрал сущность из БД, а затем установил значения, которые я хочу установить .. Теперь он работает .. –

Смежные вопросы