本菜初学hibernate,结果在运行某一程序后出现如下错误:
org.hibernate.NonUniqueObjectException
: a different object with the same identifier value was already associated withthe session
大概意思是:有不同的持久化类的对象,里面有着相同的实体类型的值,而且该值已经关联到了session.
那么什么叫做实体类型呢?google之.... 得到如下结果:
实体类型和值类型的区别:
实体类型:在数据库中有该类型所对应的主键,而且该对象可以被其他对象所引用,那么该类型就为实体类型.
值类型:本身没有用以标识的属性,依赖于某个对象(生命周期取决于所依赖的对象),并且无法被两个以上的对象引用的对象.
总而言之,实体类型就相当于一张表的主键,而除了这张表的主键之外的所有字段都是值类型的.(如理解有误,还请各位指点orz).
那么,再回到我们刚才的问题,不同的对象里有着不同的实体类型,那么就要检查持久化类所对应的xxx.hbm.xml文件里的关于主键的配置,是否使得生成多个对象时导致主键的重复.....(基本上是主键生成策略的问题)
本菜就是因为误把<generator>设置成了assigned,而之后又没有手动的给id赋值,导致生成2个对象的时候,报了该错误..orz
大概意思是:有不同的持久化类的对象,里面有着相同的实体类型的值,而且该值已经关联到了session.
那么什么叫做实体类型呢?google之.... 得到如下结果:
实体类型和值类型的区别:
实体类型:在数据库中有该类型所对应的主键,而且该对象可以被其他对象所引用,那么该类型就为实体类型.
值类型:本身没有用以标识的属性,依赖于某个对象(生命周期取决于所依赖的对象),并且无法被两个以上的对象引用的对象.
总而言之,实体类型就相当于一张表的主键,而除了这张表的主键之外的所有字段都是值类型的.(如理解有误,还请各位指点orz).
那么,再回到我们刚才的问题,不同的对象里有着不同的实体类型,那么就要检查持久化类所对应的xxx.hbm.xml文件里的关于主键的配置,是否使得生成多个对象时导致主键的重复.....(基本上是主键生成策略的问题)
本菜就是因为误把<generator>设置成了assigned,而之后又没有手动的给id赋值,导致生成2个对象的时候,报了该错误..orz
相关推荐
《Hibernate 3.6.4.Final:Java ORM框架的深度探索》 Hibernate,作为Java领域中最著名的对象关系映射(ORM)框架之一,自...无论是初学者还是经验丰富的开发者,深入学习和实践Hibernate都是提升技能树的重要一环。
6. **示例**:可能有一些示例项目,演示如何配置和使用Hibernate,这对于初学者来说是非常有价值的资源。 7. **配置文件**:如`hibernate.cfg.xml`,用于设置数据库连接参数、缓存策略等,它是启动Hibernate会话...
**初学Hibernate,Hibernate入门** Hibernate是一个开源的对象关系映射(ORM)框架,它为Java开发者提供了方便的数据持久化服务。在Java应用中,通过Hibernate,开发者可以将数据库操作抽象成对象模型,使得代码...
《孙卫琴Hibernate电子课件》是一套针对Java开发中的持久化框架Hibernate的详细学习资料。Hibernate是一个开源的ORM(对象关系映射)框架,它为Java开发者提供了方便的数据库操作方式,使得开发者无需直接编写SQL...
Hibernate ORM,全称Hibernate Object Relational Mapping,是Java领域中一款广泛应用的开源对象关系映射框架。它为开发者提供了一种将面向对象的模型与传统的关系数据库之间的转换工具,极大地简化了Java应用的数据...
这份文档资料旨在帮助初学者深入理解Hibernate与Spring的集成,为你的开发之路提供坚实的理论基础和技术支持。 一、Hibernate概述 Hibernate是一个开源的ORM框架,它简化了Java应用与数据库之间的交互。通过提供...
《Hibernate 5.2.12.Final:深入解析与实战指南》 Hibernate,作为Java领域最著名的对象关系映射(ORM)框架之一,一直以来都备受开发者青睐。本资源为Hibernate 5.2.12.Final的最新官方完整版,包含了源码、实例...
根据提供的标题“深入浅出 Hibernate.pdf”以及描述“深入浅出 Hibernate.pdf”,我们可以推断这份文档主要讲解了Hibernate框架的相关知识。接下来,我们将基于这些信息展开详细的解释与知识点的梳理。 ### ...
**标题解析:** "hibernate所需要的所有jar包" 指的是...总的来说,这个压缩包是一个全面的Hibernate开发环境起步包,包含运行Hibernate应用所需的所有组件,适用于初学者快速上手或者为现有项目添加Hibernate支持。
4. **示例**:可能包含一些简单的示例项目,用于演示如何配置和使用Hibernate,对于初学者来说是非常实用的学习资源。 5. **构建脚本**:如pom.xml文件(如果使用Maven),或者build.gradle文件(如果使用Gradle),...
《韩顺平.2011版.hibernate_ppt》是一个关于Hibernate框架的培训教程,由知名讲师韩顺平在2011年制作并分享。Hibernate是一个强大的Java对象关系映射(ORM)框架,它极大地简化了Java应用程序与数据库之间的交互。...
然而,对于初学者来说,遇到错误是常有的事,比如“java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource”。这个异常表明在运行时,系统无法找到指定的类,即Apache Commons DBCP的...
《Manning.Java.Persistence.with.Hibernate》一书是Hibernate领域的权威指南,由Hibernate项目的主导开发者撰写,深入浅出地讲解了Hibernate框架的核心概念、架构设计、配置方法以及在实际开发中的应用技巧。...
《Hibernate 快速上手》是Manning出版社于2005年8月出版的一本技术书籍,专门针对Java开发者,旨在帮助他们快速理解和掌握...《Hibernate 快速上手》是初学者和有经验的开发者了解并深入理解Hibernate的宝贵资源。
Hibernate是一个开源的对象关系映射(ORM)框架,它允许Java开发者将数据库操作转换为对象级别的操作,从而简化了...如果你是初学者,建议先从官方文档或示例代码开始学习,逐步理解Hibernate的核心概念和工作原理。
Hibernate是Java领域中一款广泛应用的关系对象映射框架,它允许开发者用面向对象...这个“hibernate完整配置文件”压缩包应该包含了所有必要的配置和示例,是初学者和有经验的开发者深入理解Hibernate配置的宝贵资源。
总之,Hibernate中文参考文档详细地阐述了如何利用Hibernate框架进行数据库操作,无论你是初学者还是经验丰富的开发者,都可以从中获取到宝贵的知识。通过深入学习和实践,你可以更好地理解和掌握Java ORM技术,提升...
- **异常处理**:正确处理Hibernate抛出的各种异常,比如`org.hibernate.NonUniqueObjectException`等,确保程序健壮性。 - **代码可读性和可维护性**:遵循良好的编码规范,如命名规则、注释等,使得代码更易于理解...