gpt4 book ai didi

hibernate - 非法状态异常 : Error occurred while storing entity An entity copy was already assigned to a different entity

转载 作者:行者123 更新时间:2023-12-02 23:36:47 26 4
gpt4 key购买 nike

经过大量谷歌搜索后,除了降级 hibernate 版本之外,我没有找到问题的答案。但我在 2003 年类似的帖子中遇到了这种情况。

问题是什么:

//in the  first session I do
session1.save(entity);
session1.getTransaction().commit();
session1.close();

//in the second session (after client response), I get back the serialized copy of the entity
entityCopy = deserialize(jsonString);
entityCopy.setEntityDetail(newDetail); //1
session2.merge(entityCopy); //EXCEPTION!

如果注释字符串为 1,则一切正常!

异常(exception):

IllegalStateException:存储实体#4700时发生错误实体副本#4700已分配给不同的实体@2e7b134a

问题:

  1. 我的情况出了什么问题?
  2. 据我了解,当我们已经在缓存中拥有实体副本时,就会针对这些情况实现 merge() 操作。 我错了吗?

PS

  1. 如果重要,Entity -> EntityDetaillazy, orphanRemoval = true, one-2-one 关系链接
  2. 我重写了 equals() 和 hashCode() 方法。

最佳答案

我用以下方法解决这个问题:在对反序列化实体进行一些更改之前,有必要先合并它。 (唯一的变化是第 2 个字符串):

//in the  first session I do
session1.save(entity);
session1.getTransaction().commit();
session1.close();

//in the second session (after client response), I get back the serialized copy of the entity
entityCopy = deserialize(jsonString);
entityCopy = (Entity) session.merge(entityCopy); //2
entityCopy.setEntityDetail(newDetail);
session2.merge(entityCopy); //all works fine

关于hibernate - 非法状态异常 : Error occurred while storing entity <entity> An entity copy <entity> was already assigned to a different entity <entity_copy>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18147031/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com