via: http://www.blogjava.net/hrcdg/articles/157724.html
1、a different object with the same identifier value was already associated with the session。
错误原因:在hibernate中同一个session里面有了两个相同标识但是是不同实体。
解决方法一:session.clean()
PS:如果在clean操作后面又进行了saveOrUpdate(object)等改变数据状态的操作,有可能会报出"Found two representations of same collection"异常。
解决方法二:session.refresh(object)
PS:当object不是数据库中已有数据的对象的时候,不能使用session.refresh(object)因为该方法是从hibernate的session中去重新取object,如果session中没有这个对象,则会报错所以当你使用saveOrUpdate(object)之前还需要判断一下。
解决方法三:session.merge(object)
PS:Hibernate里面自带的方法,推荐使用。
2、Found two representations of same collection
错误原因:见1。
解决方法:session.merge(object)
以上两中异常经常出现在一对多映射和多对多映射中
说下我的理解:
比如说有个People类你已经在数据库中查询出来了一个People对象 A,但是后来(当这次session还未关闭,一般都是在同一个方法里)你又创建了一个People对象B他和A的主键值一模一样,当你要保存B的时候hibernate是不允许两个主键相同的对象在同一个session里面的,所以最根本的解决办法就是,当你需要修改这个对象的时候只要修改A的相应的值然后save保存就可以了,没必要再创建B再去保存B.
相关推荐
、org.hibernate.id.IdentifierGenerationException 以及 a different object with the same identifier value was already associated with the session 等。 1. net.sf.hibernate.MappingException ...
《hibernate_persistence》是关于Hibernate持久化框架的一本书,涵盖了从第2章到第16章的源代码示例。这些章节深入探讨了如何使用Hibernate进行对象关系映射(ORM),并提供了作者亲自编写的代码实例,方便读者学习...
5. `a different object with the same identifier value was already associated with the session` 这个异常表明在同一个Hibernate Session中存在两个具有相同标识但实际是不同对象的情况。处理方法有: - 使用`...
Java实现标识符对类的访问控制代码Java implementation of access control identifier code of the class
3. **ID(Identifier)**:每个实体都有一个唯一的ID,用于在数据库中唯一标识它。通常使用`@Id`注解来指定主键字段。 4. **映射文件(Mapping File)**:`hbm.xml`文件用于定义Java类与数据库表之间的映射关系,而...
3. **Entity和Identifier**:Hibernate通过@Entity注解标记实体类,代表数据库中的表。实体类的主键由@Id注解标识,用于映射到数据库表的主键字段。 4. **Query和Criteria API**:Hibernate提供了两种查询方式,一...
**Hibernate 二级缓存详解** 缓存是一种提升应用程序性能的技术,它通过将常用数据存储在内存中,减少了对持久层数据库的访问,从而提高系统响应速度。在Hibernate框架中,缓存主要分为一级缓存和二级缓存。 **1. ...
HIBERNATE - 符合Java习惯的关系数据库持久化 Hibernate参考文档 3.2 -------------------------------------------------------------------------------- 目录 前言 1. 翻译说明 2. 版权声明 1. Hibernate...
### Hibernate Reference Documentation 知识点概述 #### 1. 教程 ##### 1.1 第一部分 — 第一个 Hibernate 应用程序 该章节详细介绍了如何创建并运行一个简单的 Hibernate 应用程序。 - **1.1.1 设置**:这部分...
Hibernate是一个开源的对象关系映射(ORM)框架,它允许Java开发者在Java应用程序中处理数据库操作,而无需直接编写SQL语句。Hibernate通过提供一个中间层,将数据对象与数据库表进行映射,使得数据访问更加方便、...
在本教程中,我们将深入探讨Hibernate框架中的一个核心概念——对象标识符(Object Identifier)。通过本篇教程的学习,您将了解到对象标识符在Hibernate中的重要性以及如何正确地为持久化对象设置标识符。此外,我们...
### Hibernate Annotation注解编程知识点详解 #### 一、概述与设置环境 - **概述**:Hibernate 是一个流行的 Java 持久层框架,它提供了一种面向对象的方式来处理数据库操作。Hibernate 支持多种元数据定义方式,...
KB2558 Desigo CC 2.1 SR1, ABT-Pro, XWP: Lease time of S7DOS expired at 31.12.2015 https://support.industry.siemens.com/cs/us/en/view/109482349
数字对象标识符(Digital Object Identifier,简称DOI)是一种持久性标识符,用于唯一地标识数字资源,如学术文章、数据集等。DOI系统由国际DOI基金会管理,并在出版界广泛采用。随着数字资源的增加以及对资源描述的...
In these systems, packets are transmitted over the same wireless infrastructure used for cellular telephony, with the base station thus being managed by a telecommunications provider. This provides ...
POJO(Plain Old Java Object)模型是 Hibernate 的默认域模型,要求实体对象满足以下几点: 1. 实现无参构造函数: 实体对象必须提供一个无参构造函数。 2. 提供 identifier(标识)属性: 实体对象必须提供一个...
- FIX: The value of some string flex-properties that began with a parenthese or curly bracket had no apostrophe at the end; that caused an error when reading. (fixed TPropList.SavePropValue for the ...
- When the signal conditioning function "S&M" was used for a byte value, the driver wrote wrong values to the PLC. Build 223 : New Functions: - The number of supported NetLinks has been ...