今天写项目时,在使用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. 3dmax 法线重置

    从一个模型分离部位时,分离出的部分,面法线发生了混乱,左边原始模型,右边分离后 重置法线方法 对模型(比如对分离出的下半身)添加 EditoNormal修改器 选中模型部位 添加Edit Normal ...

  2. codeforces494C Helping People【treedp+概率dp】

    区间不交叉,可以看出区间构成了树形结构,建出树之后,设f[u][i]为u这个区间最大值最多加i的概率,转移是\( f[u][i]=p[u]*\prod f[v][mxu-mxv-1]+(1-p[u]) ...

  3. 洛谷P1633 二进制

    P1633 二进制 题目描述 有三个整数A.B.C,以下用N(2)表示N的二进制(没有前导0). 设A(2).B(2).C(2)的最大长度为L,你需要构造三个正整数X.Y.Z,满足以下条件: (1) ...

  4. [Xcode 实际操作]六、媒体与动画-(6)使用UIBlurEffect给图片添加模糊效果

    目录:[Swift]Xcode实际操作 本文将演示如何给图像添加模糊效果. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit class V ...

  5. [Xcode 实际操作]七、文件与数据-(5 )复制、移动、删除文件和删除文件夹

    目录:[Swift]Xcode实际操作 本文将演示如何复制.移动和删除文件. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit class ...

  6. 解决 APP启动白屏黑屏问题

    闪屏页简介 闪屏页,我们手机上的每个 APP 几乎都有自己的闪屏页,就是在真正进入程序前,会有一个页面停顿几秒钟.其实我们完全可以充分利用好这几秒钟做很多的程序初始化了启动. 为什么我的 APP 启动 ...

  7. Hive进阶_Hive数据的导入

    使用Load语句执行数据的导入 语法: load data [local] inpath 'filepath' [overwrite] into table tablename [partition ...

  8. java课后思考题(六)

    1.使用Files. walkFileTree()找出指定文件夹下所有扩展名为.txt和.java的文件. import java.io.IOException;import java.nio.fil ...

  9. ruby 从命令行读取文本

    最常见的方式就是使用内置的get 方法,这个方法可以从命令行读取用户的输入,并在默认的情况下把读入的文本赋值给预定义变量$_. 但是get方法会保留用户在输入字符串末尾所加的换行符,当用户在输入的字符 ...

  10. Spring 基础知识 - 依赖注入

    所谓的依赖注入是指容器负责创建对象和维护对象间的依赖关系,而不是通过对象本身负责自己的创建和解决自己的依赖. 依赖注入主要目的是为了解耦,体现了一种“组合”的理念. 无论是xml配置.注解配置还是Ja ...