identifier of an instance of ... was altered from 4050 to 0
list.add();
今天遇到了这样的问题.在我进行新增数据的时候,发现,
A a = new A();
for(...){
a.set();
.
.
.
list.add(a);
}
一个是为什么list.add的方法总是用最后添加的对象的值覆盖了list数组中的所有元素的值,很奇怪,后来发现是在list的添加的对象是是引用的对象引用。因为我把对象new 放在了for()循环外面了。所以在for循环里面的list.add()加载的对象都是同一个对象的引用,因为每次加载的时候都是改变了质的,所以list里面的所有元素因为是同一个对象,进而造成list的内容全是该A对象的重复引用情况。造成上面的异常。
list.add()
在后来发现了这个问题。
Authority aa = new Authority();
for(AuthorityKey ak:list){
aa.setId(ak);
addAuthority(aa);
System.out.println(aa.getId());
}
identifier of an instance of ... was altered from 4050 to 0
上网查了下,有的人说是Hibernate 的缓存问题,有的说是类型的问题。但我根据上面的原理,猜测应该是对象的引用问题,这里说明了Hibernate的每一个对象都是具有唯一性的。所以,不能像上面那样。把一个对象的Id,更改过后再进行持久化,这里的对象应该是用hashcode标识的。
这是修改过后的
for(AuthorityKey ak:list){
Authority aa = new Authority();
aa.setId(ak);
addAuthority(aa);
System.out.println(aa.getId());}
问题解决了。
分享到:
相关推荐
【标题】与【描述】提及的是“Hibernate面试题专栏”,主要涵盖了全面的Hibernate面试题、笔试题以及相关问题,这表明我们将要讨论的是Java领域中著名的对象关系映射框架——Hibernate的相关知识。Hibernate是一个...
\Hibernate 问题集锦.docx
这个问题在"Hibernate相关jar包括新版本jdk不兼容旧版本的jar.zip"这个压缩包中被提及,表明其中可能包含了针对这种兼容性问题的解决方案。 首先,我们需要理解为什么新版本的JDK可能导致与Hibernate的不兼容性。...
【hibernate问题详解】 Hibernate是一款强大的Java对象关系映射(ORM)框架,它通过将数据库操作转换为对Java对象的操作,简化了开发过程。在理解Hibernate时,我们需要对比其他两种常见的数据访问技术:JDBC和...
利用hibernate往数据库里插入数据时,不能插入集合,只能插入对象
由于具体问题未明确,我们将探讨一些常见的Hibernate问题及其解决方法。 【标签】:“hibernate ppt 有问题 www.willvc.com.cn 能联系到我” 这里的标签再次强调了问题的核心,即与Hibernate相关的PPT内容存在困惑...
在培训中,会通过案例分析,如招聘面试中的Hibernate问题和失败项目的教训,来帮助学员深入理解Hibernate的实际应用。这包括了解Hibernate的架构,掌握实体、会话、查询等核心概念,以及如何配置和使用...
在开发Java Web应用程序时,Spring和...通过以上步骤和策略,大多数Spring与Hibernate的包冲突问题都可以得到解决。在实际开发过程中,应始终关注框架的新版本和官方文档,以便获取最新的兼容性和最佳实践信息。
15. 错误处理和优化:学习如何调试常见的Hibernate问题,如N+1查询问题、懒加载异常等,以及如何进行性能调优,如合理设置缓存策略、避免过多的JOIN操作等。 以上就是《精通Hibernate》学习中涉及的主要知识点。...
这主要是为了解决内存的不稳定性和容量限制问题,并满足业务数据共享、大规模数据检索和数据管理的需求。 在企业级应用中,对象序列化适合少量对象的持久化,但不符合大规模查询和长时间保存的需求。因此,除了对象...
8. **查询优化**:避免N+1查询问题,使用JOIN fetch提前加载关联数据,使用HQL或JPQL替代原生SQL以利用Hibernate的优化能力。 9. **错误处理和日志记录**:理解Hibernate常见的错误和异常,如 detached entity ...
《基于SpringMvc+Hibernate的问题管理系统实现详解》 在IT领域,高效的问题管理是任何软件开发团队不可或缺的一部分。本文将深入探讨如何使用SpringMvc和Hibernate这两个强大的框架,构建一个功能完善的问题管理...
二级缓存则是在多个`Session`间共享的,可以提高数据读取效率,但需谨慎使用以防止数据一致性问题。 8. **持久化类和映射文件**:持久化类是与数据库表对应的Java类,通常包含一些特定的注解或XML映射文件...
《Hibernate需要注意的问题与数据源配置详解》 在Java企业级开发中,Hibernate作为一种流行的ORM(对象关系映射)框架,极大地简化了数据库操作。然而,使用Hibernate的过程中,开发者需要特别注意一些关键点,以...
3. **文档**:如用户指南、API文档,帮助开发者快速上手和解决问题。 4. **示例**:包含了一些演示如何使用Hibernate的代码示例,有助于理解其用法。 5. **配置文件**:可能有默认的配置模板,展示如何配置Hibernate...
《深入剖析Hibernate 3.2源代码...通过深入学习Hibernate 3.2的源代码,开发者不仅可以了解其实现原理,还能在遇到问题时更快定位,进行定制化开发。同时,这也有助于理解ORM框架的工作方式,提升软件设计和开发能力。
为了解决这一问题,两个工具——hibernate-extensions和Middlegen-Hibernate应运而生,它们可以自动生成这些代码,提高了开发效率。 **hibernate-extensions** 是Hibernate框架的一个扩展,它提供了一些额外的功能...
然而,在使用Hibernate时,可能会遇到事务回滚失败的问题,本文将详细介绍该问题的原因和解决方法。 一、问题描述 在使用Hibernate时,可能会遇到以下错误信息: Could not roll back Hibernate transaction; ...
【Hibernate更新问题详解】 Hibernate,一个强大的Java对象关系映射(ORM)框架,极大地简化了数据库操作。在处理数据更新时,Hibernate提供了多种方法,但同时也可能会遇到一些常见问题。本篇文章将深入探讨...