Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jpa entityManager.merge()之后未更新虚拟列字段_Jpa_Merge_Entitymanager_Persist - Fatal编程技术网

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

Jpa entityManager.merge()之后未更新虚拟列字段,jpa,merge,entitymanager,persist,Jpa,Merge,Entitymanager,Persist,我在更新个人实体时遇到以下情况 我的初始实体: 名字:x 首选名字:y 名称:y(该值在数据库中计算。逻辑是如果preferredFirstName有值,则name=preferredFirstName,否则name=firstName) 更新实体: person.setFirstName("a"); person.setPreferredFirstName("b"); 现在当我做em.merge(person)名字和首选名字更改为a和b。但person实体

我在更新个人实体时遇到以下情况

我的初始实体:

  • 名字:x
  • 首选名字:y
  • 名称:y(该值在数据库中计算。逻辑是如果
    preferredFirstName
    有值,则
    name=preferredFirstName
    ,否则
    name=firstName
更新实体:

        person.setFirstName("a");
        person.setPreferredFirstName("b");
现在当我做
em.merge(person)名字和首选名字更改为a和b。但person实体中的名称字段仍保留“y”

我试过:

  • 冲洗
  • em.find(个人,id)
  • 刷新
  • 他们似乎都没有工作


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

    先执行em.flush(),然后执行em.refresh()。

    请,请检查您的答案是否正确,以便其他用户能够识别。您好@Jmvivo谢谢设置我的问题的格式。非常感谢您能给我一些关于如何设置问题格式的提示吗?或者给我指一个资源?我知道ctrl+k用于格式化代码。当做