2015-12-09 2 views
0

У меня есть ниже сценарий, обновляя Person объект ..виртуальное поле столбца не обновляется после entityManager.merge()

Мой первоначальный объект:

  • ПгвЬЫате: х
  • preferredFirstName: y
  • имя: y (эти значения рассчитываются в базе данных. логика есть, если preferredFirstName имеет значение, то name = preferredFirstName, иначе name = firstName)

обновленное лицо:

 person.setFirstName("a"); 
     person.setPreferredFirstName("b"); 

теперь, когда я em.merge(person);ПгвЬЫате и preferredFirstName изменяются а и Ь. Но поле имени в лице субъекта до сих пор имеет место «у»

Я пробовал:

  1. вровень
  2. em.find (лицо, идентификатор)
  3. обновите

Ни один из них похоже, работает.

Есть ли лучший способ получить обновленное значение виртуального столбца?

+0

hi @Jmvivo спасибо за форматирование моего вопроса. Очень ценю, что вы можете дать мне несколько советов о том, как форматировать вопросы? или указать мне ресурс? Я знал ctrl + k для форматирования кода. – rohith

+0

Привет @rohith, просто загляните в раздел справки (http://stackoverflow.com/help/formatting). С уважением – jmvivo

ответ

0

Выполнение em.flush(), за которым следует em.refresh().

+0

Пожалуйста, отметьте свой ответ, если он правильный, и другой пользователь может его идентифицировать. – jmvivo