entityManager.merge()之后未更新的虚拟列字段

时间:2015-12-09 23:53:27

标签: jpa merge entitymanager persist

我在更新Person实体时有以下场景..

我的初始实体:

  • 的firstName :X
  • preferredFirstName :y
  • name :y(此值在数据库中计算。如果preferredFirstName的值为name = preferredFirstName则为逻辑,否则为name = firstName

更新实体:

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

现在当我em.merge(person); firstName preferredFirstName 更改为a和b时。但是人物实体中的名称字段仍然保留“y”

我试过了:

  1. 冲洗
  2. em.find(person,id)
  3. 刷新
  4. 他们似乎都没有工作。

    有没有更好的方法来获取虚拟列的更新值?

1 个答案:

答案 0 :(得分:0)

做em.flush()后跟em.refresh()做了。