今天写项目时,在使用hibernate封装的插入方法时,由于需要同时保存多个数据,导致出现identifier of an instance of

如下代码 :(由于最大最小分数不同所以需要插入两条数据)

ExamScoreDivide examScoreDivide=new ExamScoreDivide();
ExamCourse examCourse=new ExamCourse();
examCourse.setExamCourseId(examCourseId); Exam exam=new Exam();
exam.setExamId(examId); examScoreDivide.setDivideId(StringUtil.getUuid());
examScoreDivide.setMinScore(minScore1);
examScoreDivide.setMaxScore(maxScore1);
examScoreDivide.setExamCourse(examCourse);
examScoreDivide.setExam(exam);
examScoreDivide.setCreator(userInfo.getUserName());
examScoreDivide.setCreateTime(DateUtil.currentDate());
examScoreDivide.setDivideName(divideName);
gradExamScoreDivideService.save(examScoreDivide); examScoreDivide.setDivideId(StringUtil.getUuid());
examScoreDivide.setMinScore(minScore2);
examScoreDivide.setMaxScore(maxScore2);
examScoreDivide.setExamCourse(examCourse);
examScoreDivide.setExam(exam);
examScoreDivide.setCreator(userInfo.getUserName());
examScoreDivide.setCreateTime(DateUtil.currentDate());
examScoreDivide.setDivideName(divideName);
gradExamScoreDivideService.save(examScoreDivide);

但结果报该错误,后来知道了原因:

报错的原因是,在没有给对象examScoreDivide 分配初始的内存地址的时候,就进行对象生成,不管生成多少个,都是多个对象的内存指针指向一个内存地址,所以hibernate在存储时就会保存。放在内存里面每次new就等一个新的内存空间,所以不会报错。

解决后的代码:

ExamScoreDivide examScoreDivide=new ExamScoreDivide();
ExamCourse examCourse=new ExamCourse();
examCourse.setExamCourseId(examCourseId); Exam exam=new Exam();
exam.setExamId(examId); examScoreDivide.setDivideId(StringUtil.getUuid());
examScoreDivide.setMinScore(minScore1);
examScoreDivide.setMaxScore(maxScore1);
examScoreDivide.setExamCourse(examCourse);
examScoreDivide.setExam(exam);
examScoreDivide.setCreator(userInfo.getUserName());
examScoreDivide.setCreateTime(DateUtil.currentDate());
examScoreDivide.setDivideName(divideName);
gradExamScoreDivideService.save(examScoreDivide); ExamScoreDivide examScoreDivide1=new ExamScoreDivide();
ExamCourse examCourse1=new ExamCourse();
examCourse1.setExamCourseId(examCourseId); Exam exam1=new Exam();
exam1.setExamId(examId); examScoreDivide1.setDivideId(StringUtil.getUuid());
examScoreDivide1.setMinScore(minScore2);
examScoreDivide1.setMaxScore(maxScore2);
examScoreDivide1.setExamCourse(examCourse1);
examScoreDivide1.setExam(exam1);
examScoreDivide1.setDivideName(divideName);
examScoreDivide1.setCreator(userInfo.getUserName());
examScoreDivide1.setCreateTime(DateUtil.currentDate());
gradExamScoreDivideService.save(examScoreDivide1);

  

Hibernate异常:identifier of an instance of 错误的更多相关文章

  1. 【hibernate】错误:org.hibernate.HibernateException: identifier of an instance of com.agen.entity.Monthdetail was altered from xx to xx

    所报错误: org.hibernate.HibernateException: identifier of an instance of com.agen.entity.Monthdetail was ...

  2. identifier of an instance of xx.entity was altered from xxKey@249e3cb2 to xxKey@74e8f4a3; nested exception is org.hibernate.HibernateException: identifier of an instance of xxentity was altered from错误

    用entityManager保存数据时报错如下 identifier of an instance of xx.entity was altered from xxKey@249e3cb2 to xx ...

  3. 解决org.hibernate.HibernateException: identifier of an instance of com.ahd.entity.Order was altered from2 to 0

    错误信息 严重: Servlet.service() for servlet [springmvc] in context with path [/order] threw exception [Re ...

  4. Caused by: org.hibernate.HibernateException: identifier of an instance of ... is alterde from

    Caused by: org.hibernate.HibernateException: identifier of an instance of ... is alterde from     Hi ...

  5. 161117、使用spring声明式事务抛出 identifier of an instance of

    今天项目组有成员使用spring声明式事务出现下面异常,这里跟大家分享学习下. 异常信息: org.springframework.orm.hibernate3.HibernateSystemExce ...

  6. hibernate 异常

    1.异常:org.hibernate.AnnotationException: No identifier specified for entity异常. entity类是必须要主键的,否则就会报出这 ...

  7. identifier of an instance of com.xxx.model.system.xxxObject was altered from 1765 to 1766

    Caused by: org.hibernate.HibernateException: identifier of an instance of com.xxx.model.system.xxxOb ...

  8. Hibernate 异常总结

    异常一 异常一 异常描述: Sax解析异常:cvc-复杂的类型,发现了以元素maping开头的无效内容,应该是以 ‘{“http://www.hibernate.org/xsd/orm/cfg“:pr ...

  9. spring参数类型异常输出,SpringMvc参数类型转换错误输出

    spring参数类型异常输出, SpringMvc参数类型转换错误输出 >>>>>>>>>>>>>>>> ...

随机推荐

  1. php 数值转多少年,多少天,多少时,多少分,多少秒

    function Sec2Time($time){ if(is_numeric($time)){ $value = array( "years" => 0, "da ...

  2. 洛谷P2862 [USACO06JAN]把牛Corral the Cows

    P2862 [USACO06JAN]把牛Corral the Cows 题目描述 Farmer John wishes to build a corral for his cows. Being fi ...

  3. 洛谷 P2216 [HAOI2007]理想的正方形

    P2216 [HAOI2007]理想的正方形 题目描述 有一个a*b的整数组成的矩阵,现请你从中找出一个n*n的正方形区域,使得该区域所有数中的最大值和最小值的差最小. 输入输出格式 输入格式: 第一 ...

  4. 内置对象(Math对象、Date对象、Array对象、String对象)常用属性和方法

    Math对象 Math 是一个内置对象, 它具有数学常数和函数的属性和方法.不是一个函数对象. 与其它全局对象不同的是, Math 不是一个构造函数.  Math 的所有属性和方法都是静态的. 跟数学 ...

  5. Spring - SpringIOC容器详解

    一.什么是Spring IOC: Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想. 在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是 ...

  6. appium desktop连接模拟器

    1.adb准备好,我建议,下载Androidstudio,因为这样adb是最新的,可能会避免很多问题 2.adb connect 127.0.0.1:xxxx (网易mumu是7555,别的模拟器自行 ...

  7. ICPC-无限路之城(数学+思维)

    链接:https://ac.nowcoder.com/acm/contest/321/C 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语言2621 ...

  8. jdbc查询

    import java.util.ArrayList; import java.util.List; import org.springframework.jdbc.core.BeanProperty ...

  9. Mybatis 查询一个对象包含多个子对象 (List 包含 List)

    功能:查询一个数据列表 且每个数据中包含各自的子数据集合 使用场景:1. 当需要查询多订单数据且同时订单数据中需要包含订单明细数据时 2. 当需要查询多评论数据且同时评论数据中需要包含评论回复数据时 ...

  10. 关于Memcache的连接

    addServer 在说Memcache的长连接(pconnect)和短连接(connect)之前要先说说Memcache的addServer,Memcache的addServer是增加一个服务器到连 ...