entityManager.merge() 后虚拟列字段未更新
virtual column field not updated after entityManager.merge()
我在更新 Person 实体时遇到以下情况..
我的初始实体:
- 名字:x
- preferredFirstName:y
- name:y(这个值是在数据库中计算的。逻辑是如果
preferredFirstName
有值那么name = preferredFirstName
,否则name = firstName
)
更新实体:
person.setFirstName("a");
person.setPreferredFirstName("b");
现在当我这样做时 em.merge(person);
firstName 和 preferredFirstName 被更改为 a 和 b。但是 person 实体中的 name 字段仍然包含“y”
我试过了:
- 同花顺
- em.find(人, id)
- 刷新
None 其中似乎有效。
有没有更好的方法来获取虚拟列的更新值?
做 em.flush() 然后 em.refresh() 做到了。
我在更新 Person 实体时遇到以下情况..
我的初始实体:
- 名字:x
- preferredFirstName:y
- name:y(这个值是在数据库中计算的。逻辑是如果
preferredFirstName
有值那么name = preferredFirstName
,否则name = firstName
)
更新实体:
person.setFirstName("a");
person.setPreferredFirstName("b");
现在当我这样做时 em.merge(person);
firstName 和 preferredFirstName 被更改为 a 和 b。但是 person 实体中的 name 字段仍然包含“y”
我试过了:
- 同花顺
- em.find(人, id)
- 刷新
None 其中似乎有效。
有没有更好的方法来获取虚拟列的更新值?
做 em.flush() 然后 em.refresh() 做到了。