JPA Merge entitymanager

时间:2015-11-09 15:48:34

标签: java jpa merge

伪代码

     @Entity
     class User
        @Id
        ....
         @ManyToOne
        @JoinColumn(name = "ID_TP_CLASS", insertable = false, updatable = false)
        protected StudentClass studentCLASS;
        ....

User user = entity.merge(user);

在此代码之后,用户实例将重置studentClass实例。 在合并之前,studentClass实例已满足值,并且在合并之后,studentClass的实例存在,但studentClass中的值为null 有谁能解释我为什么会这样?

1 个答案:

答案 0 :(得分:1)

基于文档:

  

将给定实体的状态合并到当前持久性中   上下文。

     

返回:状态合并到

的托管实例

您已将StudentClass标记为无可插入且无可更新,因此合并无法对其执行任何操作。合并后,如果持久化上下文中没有数据,则该属性将为空。

您是在合并之前从数据库中检索实体吗?