`
lhy5201314
  • 浏览: 122688 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

hibernate异常"Found shared references to a collection"

阅读更多

问题:
假定,Parent类有一个Set属性,里面放的是Son。如果查询"from Parent",某个Parent哪怕一个Son都没有,那个Set属性不会为null,而是一个空集合。
这时候如果你Parent newP=new Parent();然后BeanUtils.copyPropertis(newP,origP);最后就会报hibernate异常"Found shared references to a collection"。
注:hibernate在什么时机发现"两个对象共享一个集合"的情况的?我这边的例子是在下一次查询时发现的。

原因:
BeanUtils.copyPropertis是浅拷贝,导致这两个对象引用的Set是同一个Set,这在hibernate中是不允许的,参见Hibernate reference第6章的"Two entities may not share a reference to the same collection instance"。
这种问题常见于复制对象时。
如何解决:newP.setSonSet(null);
还有人说原因可能是并发操作:http://www.blogjava.net/fastzch/archive/2006/12/22/89520.html

参考:
http://markmail.org/message/fszouomkeicjynw2
http://blog.csdn.net/programeyonger/archive/2008/01/31/2075304.aspx
http://www.iteye.com/topic/99505

http://www.blogjava.net/leekiang/archive/2008/10/31/237908.html

分享到:
评论

相关推荐

    Hibernate Reference Documentation3.1

    Table of Contents Preface 1. Introduction to Hibernate ... Many-to-many with shared composite key attribute 23.4.4. Content based discrimination 23.4.5. Associations on alternate keys 24. Best Practices

    解决SpringDataJPA报错:org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null w

    问题描述 用SpringBoot + Spring Data JPA操作数据库 项目启动的时候 报了一个错 SpringBoot的版本是2.2.6.RELEASE org.springframework.beans.factory.BeanCreationException: Error creating bean with name '...

    hibernate4.3.5references chm文档

    hibernate4.3.5references chm文档

    Hibernate,hibernate笔记

    在描述中提到的`org.hibernate.PropertyValueException: not-null property references a null or transient value`是Hibernate抛出的一个常见异常,表示尝试保存一个实体时,其某个非空属性为null或未持久化。...

    Hibernate映射导致的几个异常

    标题与描述概述的知识点主要集中在Hibernate映射过程中可能遇到的各种异常情况,这涉及到数据库与对象模型之间的映射问题,以及Hibernate框架在处理这些映射时可能产生的错误。下面将对这些异常进行详细的解释和分析...

    Hibernate References

    ### Hibernate 关系持久化知识点详解 #### 一、前言 Hibernate 是一款强大的对象关系映射(ORM)框架,它简化了 Java 应用程序与关系型数据库之间的交互过程。根据给定文件中的描述,我们可以深入理解 Hibernate ...

    hibernate annotations

    **标题:“Hibernate Annotations”** **概述** Hibernate是一个流行的Java对象关系映射(ORM)框架,它简化了在Java应用程序中处理数据库的过程。Hibernate Annotations是Hibernate框架的一个重要组成部分,它...

    (3)Hibernate3.2 中的 one-to-one关系

    在Java的持久化框架Hibernate中,一对一(One-to-One)关联是对象关系映射(ORM)中的一个重要概念,它用于表示两个实体之间一对一的映射关系。本篇将深入探讨Hibernate 3.2中的一对一关系,以及如何在实际项目中...

    hibernate常见错误解决方案

    在开发基于Hibernate框架的应用程序时,我们经常会遇到各种各样的异常情况。这些异常不仅会影响系统的正常运行,还可能增加调试难度。本文将针对几个常见的Hibernate异常进行详细解析,并提供相应的解决策略。 ####...

    Hibernate 中文 html 帮助文档

    目录 ... 共有组合键属性的多对多(Many-to-many with shared composite key attribute) 23.4.4. Content based discrimination 23.4.5. Associations on alternate keys 24. 最佳实践(Best Practices)

    hibernate4.x jar

    3. **references_single**: 这可能是Hibernate的一些参考文档或指南,帮助开发者理解和使用Hibernate4.x,对于学习和解决问题非常有帮助。 三、实战应用: 在实际开发中,Hibernate4.x常用于企业级应用,例如电子...

    Hibernate5.2.11高清版,最新版本

    参考文献(References)则是为开发者提供了进一步学习Hibernate的资源。 Hibernate5.2.11的用户手册是一个非常全面的文档,它覆盖了从基础到高级主题的广泛内容,对于想要深入了解和运用Hibernate来构建稳定、高效...

    Hibernate ORM 5.3.7.Final User Guide

    Hibernate ORM是一款为Java环境提供的对象/关系映射(Object/Relational Mapping, ORM)解决方案。它主要解决的问题是将对象模型表示的数据映射到关系数据库模型表示的数据,以及将Java数据类型映射到SQL数据类型。...

    Introduction to Data Science - A Python Approach

    to provide a complete collection of references. Currently, data science is an increasing and emerging field, so readers are encouraged to look for specific methods and references using keywords in the...

    Hibernate 多表映射关系配置

    在 Hibernate 中,`user_roles` 表可以通过在两个实体的 hbm.xml 文件中添加 `many-to-many` 标签来配置。 `User.hbm.xml` 示例: ```xml <hibernate-mapping> <many-to-many class=...

    10_传智播客JPA详解_JPA中的一对多双向关联与级联操作

    在Java世界中,Java Persistence API(JPA)是Oracle公司推出的用于对象关系映射(ORM)的标准框架,它简化了数据库操作,使开发者能够用Java对象来操作数据库记录。本教程将深入探讨JPA中的一对多双向关联及级联...

    Voltage References From Diodes to Precision High-Order Bandgap Circuits

    Voltage References From Diodes to Precision High-Order Bandgap Circuits

    A collection of resources on modern C++.zip

    "A collection of resources on modern C++.zip" 是一个包含有关现代C++学习和进阶的资源集合,旨在帮助开发者提升对C++的理解和应用能力。以下是一些关键知识点,基于这个压缩包的标题和描述,我们可以推测其中可能...

Global site tag (gtag.js) - Google Analytics