`
umbrellall1
  • 浏览: 146362 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

Hibernate :Found shared references to a collection

阅读更多

 

Session session=getSessionFactory().getCurrentSession();
		Question q=(Question)session.get(Question.class, id);

 

	Question_Engineer qe=new Question_Engineer();
		qe.setAdminUser(q.getAdminUser());
		qe.setContent(q.getContent());
		qe.setCreatTime(DateFormat.DateToStringD());
		qe.setDepartment(q.getDepartment());
		qe.setDoUser(q.getDoUser());
		qe.setFiles(files);
		qe.setIp(q.getIp());
		qe.setModule(module);
		qe.setPhone(q.getPhone());
		qe.setQuestionId(q.getQuestionId());
		qe.setReportTime(q.getReportTime());
		qe.setResolve(q.getResolve());
		qe.setState(q.getState());
		qe.setStatus(q.getStatus());
		qe.setTitle(q.getTitle());
		qe.setUser(user);

 然后又做持久

 

org.hibernate.Transaction tx = session.beginTransaction();  
		try{
			//存储monitoringLog
			session.save(qe);  
			//刷新缓存
			session.flush(); 
			//提交事务
			tx.commit();   
		}catch (Exception e) {
			e.printStackTrace();
			//异常回滚
			tx.rollback();
		}finally{
			//关闭连接
			session.close();  
		}

 就在session.flush(); 抛了异常

遇到这个问题原因是:1.表之间有关联。在复制数据。

3,你用了hibernate,并在复制数据时将要复制的数据对象A的所有属性赋给了对象B。

 

解决方案:

将那些关联的数据也复制一遍,并更新B的那些关联对象。这些关联数据中的一个或多个为空时也必须更新B中相应的关联对象

于是:

Module module=new Module();
		List<UploadFile> files = new ArrayList<UploadFile>();
		User user=q.getUser();
		try {
			BeanUtils.copyProperties(module, q.getModule());
			BeanUtils.copyProperties(user, q.getUser());
			BeanUtils.copyProperties(files, q.getFiles());
		} catch (Exception e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}

 然后set进去就不会出现该问题

 

分享到:
评论

相关推荐

    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文档

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

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

    Effective Java 3rd edition(Effective Java第三版英文原版)附第二版

    Item 47: Prefer Collection to Stream as a return type Item 48: Use caution when making streams parallel 8 Methods Item 49: Check parameters for validity Item 50: Make defensive copies when needed Item...

    An Introduction to Text Mining: Research Design, Data Collection, and Analysis

    An Introduction to Text Mining: Research Design, Data Collection, and Analysis By 作者: Gabe Ignatow – Rada F. Mihalcea ISBN-10 书号: 1506337007 ISBN-13 书号: 9781506337005 Edition 版本: 1 出版日期: ...

    hibernate annotations

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

    Hibernate,hibernate笔记

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

    Hibernate References

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

    C++ string类的隐式共享写时拷贝实现代码

    赋值操作符(`=`)需要考虑右值引用(Rvalue References)和左值引用(Lvalue References),以便在适当的时候进行深拷贝。 3. **拷贝构造函数**:拷贝构造函数通常会创建一个新的`std::shared_ptr&lt;char&gt;`实例,但...

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

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

    How_To_Think_Like_A_Computer_Scientist(C++)

    How To Think Like A Computer Scientist Learning with C++ by Allen B. Downey &lt;br&gt;Table of Contents Contributor List Chapter 1: The way of the program Chapter 2: Variables and types...

    hibernate常见错误解决方案

    **PropertyNotFoundException: Could not find a setter for property name in class hibernate.Hello_Bean** **异常描述:** 此异常表明Hibernate试图为实体类中的某个属性设置值时找不到对应的setter方法。 **...

    Hibernate映射导致的几个异常

    Not-null property references a null or transient value 当Hibernate尝试保存一个实体时,如果该实体中的某个被标记为`@NotNull`或在映射文件中定义为`not-null="true"`的属性值为null或者指向一个尚未持久化的...

    hibernate4.x jar

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

    C生成静态库给C++调用出现undefined reference to ...解决方案_cpp

    在C++程序中调用C编译的静态库时,可能会遇到“undefined reference to ...”错误,这通常意味着链接器无法找到对应的函数定义。要解决这个问题,我们需要理解C与C++之间的互操作性以及编译和链接过程。下面将详细...

    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)

    A collection of resources on modern C++.zip

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

    Hibernate ORM 5.3.7.Final User Guide

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

Global site tag (gtag.js) - Google Analytics