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

使用一对多和多对多映射的时候出现的问题

阅读更多

出现的异常为:a different object with the same identifier value was already associated with the session。

  错误原因:在hibernate中同一个session里面有了两个相同标识但是是不同实体,解决这个问题现在三种方法,分别如下:

  方法一:session.clean()

        如果在clean操作后面又进行了saveOrUpdate(object)等改变数据状态的操作,有可能会报出"Found two representations of same collection"异常。

  方法二:session.refresh(object)

        注意当object不是数据库中已有数据的对象的时候,不能使用session.refresh(object),因为该方法是从hibernate的session中去重新取object,如果session中没有这个对象,则会报错所以当你使用saveOrUpdate(object)之前还需要判断一下。

  方法三:session.merge(object)

分享到:
评论

相关推荐

    ibatis 一对多 多对多完整映射

    你可以为每个实体创建一对多映射,并在业务逻辑中处理关联关系。 例如,对于用户和角色的关系,可以先配置用户和中间表的映射,再配置角色和中间表的映射: ```xml <!-- 用户映射 --> SELECT r.* FROM roles r...

    MyBatis一对多映射

    使用注解的方式也可以实现一对多映射,主要使用`@One`和`@Many`注解。`@One`对应于`<association>`,`@Many`对应于`<collection>`。 例如: ```java @Entity public class User { @Id private Long id; private ...

    ibatis 一对多关系映射

    除了XML映射,Ibatis也支持使用注解进行一对多映射,但配置方式略有不同。总的来说,理解并熟练运用Ibatis的一对多关系映射是优化数据访问效率,提高代码可读性和可维护性的重要技能。 在实际开发中,合理地使用...

    Hibernate一对多,多对一映射

    首先,我们来理解一下一对多映射(One-to-Many Mapping)。在数据库设计中,一对多关系意味着一个父记录可以与多个子记录相关联。在Hibernate中,可以通过配置XML映射文件或使用注解来实现这种关系。例如,假设我们...

    JPA一对一,一对多,多对多关系映射

    Java Persistence API(JPA)是Java...理解并熟练掌握一对一、一对多和多对多关系映射对于使用JPA进行数据库操作至关重要。在实际开发中,根据业务需求选择合适的关系映射方式,可以极大地提高开发效率和代码可维护性。

    一对多映射(双向映射)源码

    在Java中,可以使用`HashMap`或`Multimap`(Guava库)来实现一对多映射。 双向映射则更进一步,它不仅实现了键到值的映射,还实现了值到键的映射。这意味着你可以通过键找到对应的值,也可以通过值找到对应的键。这...

    MyBatis高级映射(一对多查询)

    总之,MyBatis的一对多映射功能为处理数据库中的一对多关联提供了便利,通过合理配置和优化,可以在保持代码简洁的同时,提高查询效率和数据处理能力。在设计和实现业务逻辑时,充分理解并利用这些特性,能够提升...

    hibernate关联映射详解SSH 多对多,一对多关系对象映射

    本篇文章将深入探讨Hibernate中的一对多和多对多关系映射。 首先,让我们理解一对多关联映射。在数据库中,一对多关系意味着一个表中的记录可以与另一个表中的多个记录相关联。在Hibernate中,这可以通过在实体类中...

    一对多单向和双向映射

    本篇将详细探讨"一对多单向和双向映射"这一主题,结合标签中的"源码"和"工具",我们将深入理解这些概念,并可能涉及到具体的代码实现。 首先,映射是ORM框架的核心,它允许开发者将数据库表与Java类之间的关系进行...

    实现Mybatis框架中一对多关联映射的查询操作。

    这里会使用`<resultMap>`定义映射规则,`<association>`标签来处理一对多关系。 ```xml <!-- 基本字段映射 --> <!-- 一对多关联映射 --> SELECT * FROM User u JOIN Order_form o ON u.id =...

    SpringBoot中mybatis表关联映射关系(一对多嵌套:结果方式)

    SpringBoot 中 MyBatis 表关联映射关系(一对多嵌套:结果方式) 在 SpringBoot 中,MyBatis 是一个非常流行的持久...最后,我们可以使用 MyBatis 来映射 Lesson 和 Stu 之间的一对多关联关系,实现数据的持久化操作。

    hibernate(一对多,多对一映射)操作

    1. 一对多映射(One-to-Many): 在这种关系中,一个实体(父实体)可以与多个其他实体(子实体)相关联。在Hibernate中,我们通常使用`@OneToMany`注解来表示这种关系。例如,一个学生可以有多个课程,而一门课程...

    MyBatis框架的学习(五)——一对一关联映射和一对多关联映射

    在本篇关于MyBatis框架的学习中,我们将深入探讨一对一关联映射和一对多关联映射的概念、配置以及在实际开发中的应用。MyBatis是一个优秀的持久层框架,它允许开发者将SQL语句直接写在XML配置文件或者注解中,从而...

    hibernate多对多关联映射

    在Java的持久化框架Hibernate中,多对多关联映射是一种常见的关系数据库模型映射方式,用于处理两个实体之间存在多个实例互相关联的情况。本文将深入探讨Hibernate如何实现多对多关联映射,并通过实际例子解析相关...

    Mybatis/ibatiS多表映射 一对一 一对多 extjs前台取值 详细讲解

    本话题将深入探讨如何在这些框架中处理多表映射,包括一对一和一对多的关系,以及如何在ExtJS前端获取这些数据。 首先,我们来看Mybatis或iBatis在XML配置文件中的多表映射。以学生、班级和班主任为例,学生与班级...

    hibernate 一对多多对一的映射

    在Hibernate中,可以通过以下方式实现一对多映射: 1. **配置文件映射**:在Hibernate的配置文件(如`hibernate.cfg.xml`)中,声明两个实体类对应的数据库表,并设置关联关系。 2. **实体类定义**:在Java实体类中...

    hibernate学习入门一对多实体映射源码

    三、配置一对多映射 在Hibernate中,一对多关系的映射通常通过XML配置文件(hibernate.cfg.xml)或注解实现。这里我们主要讨论注解方式: 1. 在父实体类上,我们需要使用`@OneToMany`注解来定义一对多关系。这个...

    MyBatis注解配置映射器:一对多关系的实现

    本文将深入探讨如何使用MyBatis的注解配置来实现一对多关系映射,以此来提高开发效率并减少代码冗余。 首先,我们需要理解一对多关系的概念。在数据库设计中,一对多关系表示一个表中的记录可以对应另一个表中的多...

Global site tag (gtag.js) - Google Analytics