Cascade.ALL 在 OneToManyJoin 中。 javax.persistence.EntityExistsException: 相同的标识符值已与会话相关联

Cascade.ALL in OneToManyJoin. javax.persistence.EntityExistsException: same identifier value was already associated with the session

我有一个带有一对多连接的独立实体。

@Entity
@Table("t1")
class Entity1 implements Serializable {

   ...    

   @OneToMany(cascade=CascadeType.ALL)
    @JoinColumns({
        @JoinColumn(name="FIELD_1", insertable = false, updatable = false, referencedColumnName = "FIELD_1"),
        @JoinColumn(name="FIELD_2", insertable = false, updatable = false, referencedColumnName = "FIELD_2")
    })  
    public List<Entity2> getListOfEntities() {
        return listOfEntities;
    }

}

@Entity
@Table("t2")
class Entity2 implements Serializable {

   ...

}

当我调用 entity1Merged = entityManger.merge(entity1) 时,其中 entity1 属于 class Entity1,其中 entityManager 落入加入列表实体,从数据库加载它们,合并它们,但显然合并的结果 Entity2 对象没有被分配到列表 listOfEntitiesentity1Merged.

我是 hibernate 5.2.12 版中的一个错误,已跟踪问题 https://hibernate.atlassian.net/browse/HHH-12054 并已从 5.2.13+ 版解决。