Как мне обновить столбец в таблице в MySQL, используя EclipseLink? - PullRequest
0 голосов
/ 28 марта 2012

Мне интересно, как я могу обновить столбец в таблице с EclipseLink. Я попытался использовать EntityManager.merge(myObject);, но затем EclipseLink выдал некоторые исключения, говоря, что он не может обновить другие столбцы с нулевым значением. Я попытался добавить свойство @ChangeTracking в свой класс, который я хочу обновить, чтобы он просто обновлял столбец, который был изменен, но он не работал, и я даже не знаю, является ли это правильным способом сделать это.

Так как я могу обновить только один столбец в таблице, используя EclipseLink?

1 Ответ

1 голос
/ 28 марта 2012

Если ваше слияние не работает, скорее всего, вы создаете новый экземпляр с нуля и пытаетесь заполнить только значение, которое вы хотите изменить. Это приводит к слиянию, перезаписывая все остальные поля с нулем. Не используйте em.merge на незавершенных объектах, поскольку он объединяет каждое управляемое поле JPA - он не может знать, что вы хотели, и должен объединить все состояние объекта.

Вместо этого используйте ваши изменения для изменения управляемого экземпляра. Простой пример:

em.getTransaction().begin();
YourEntity instance = em.find(YourEntity.class, id);
instance.setYourAttribute(newValue);
em.getTransaction().commit();

Или отдельный экземпляр, считанный с EM, который вы позже используете em.merge.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...