`
yu633
  • 浏览: 3991 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

detached entity passed to persist;异常问题探寻

阅读更多

我在spring环境下,启动容器并向数据库一张表插了几条记录.主键是采用自增长策略.
但是我采用多线程方式出现了异常.我先贴下代码

public class TestApp extends Thread{
	private static DBService dbservice;
	private static TableSystemBeans tbs = new TableSystemBeans(111,"showname",null,null);
	
	static{
		ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");
		dbservice = (DBService) app.getBean("dbserviceimpl");
	}
	public static void main(String[] args) {
		for(int i=0;i<5;i++){
			Thread t = new TestApp();
				t.start();
		}
	}
	
	@Override
	public void run(){
		for(int i=0;i<3;i++){
			System.out.println(this.currentThread().getName()+"_mysname");
				dbservice.saveObject(tbs);
		}
	}
	
}

异常提示detached entity passed to persist:

在网上查看原因是:是一个游离的对象要被持久化(save)时,其ID既要ORM框架为它生成ID值,而此实体的ID却已然有值。

反应在代码里面的问题就是每次保存的都是同一个对象,在第一次保存后就有了ID值,再次插入就会有

identifier of an instance of xxx.xxx was altered from ...异常

如果将tbs对象在每次保存前new出来就不会报错.测试通过.

 

分享到:
评论

相关推荐

    JPA 开发中遇到的错误

    javax.persistence.PersistenceException: detached entity passed to persist 当你尝试保存一个已经与JPA上下文断开连接(即处于“游离”状态)的实体时,会抛出此异常。在JPA中,只有处于托管状态的实体才能被...

    HIbernate免注解实现操作数据库 及Hibernate3连接SQL的BUG解决办法

    4. **实体状态异常**: Hibernate在操作实体时会根据其生命周期状态进行处理,如果出现“ detached entity passed to persist”之类的错误,可能是因为实体状态管理不当。确保在操作实体前正确处理其状态(如merge、...

    hibernate aip hibernate aip

    9. **错误处理和日志记录**:理解Hibernate常见的错误和异常,如 detached entity passed to persist 等,并配置合适的日志系统,如Log4j或SLF4J,以便追踪应用运行状态。 总的来说,Hibernate AIP涵盖了从项目初始...

    SSH项目整合示例【源码】

    它确保在用户请求的整个生命周期内,Hibernate的Session保持打开状态,从而避免了“懒加载”时可能出现的“Detached entity passed to persist”错误。在Spring中,通过开启`&lt;tx:annotation-driven&gt;`和配置`...

    Hibernate save persist merge探究

    此外,如果对象已经存在且有ID,persist()不会抛出异常,而是简单地忽略该操作,这避免了数据冗余的风险。 三、merge()方法 merge()方法主要用于处理游离对象(Detached Object),即将内存中的对象与数据库中的...

    Hibernate中get和load方法的区别以及close(),clear()、evict()等的区别

    - `load`方法如果找不到对应的记录,会抛出`org.hibernate.ObjectNotFoundException`异常。这是因为`load`方法假设给定的ID肯定在数据库中存在,它采用延迟加载策略,先返回代理对象,当尝试访问对象属性时才会真正...

    EJB2.0 Entity bean(PDF)

    1. **生命周期**:实体Bean有三种生命周期状态:瞬时(Transient)、持久化(Persistent)和脱管(Detached)。瞬时Bean未与容器关联,不具有持久性;持久化Bean已由容器管理,并存储在数据库中;脱管Bean是从持久化...

    详解git submodule HEAD detached 的问题

    然而,`HEAD detached`状态是使用`git submodule`时可能遇到的一个常见问题,它意味着子模块的HEAD指针不再指向任何分支的最新提交,而是指向了历史中的某个特定提交。本文将深入探讨这个问题的原因、影响以及如何...

    JPA 开发指导文档

    3. **持久化**:调用persist()方法可以使一个新的Entity进入持久化状态,即将其保存到数据库。 4. **获取**:find()方法可以根据主键从数据库中加载一个Entity。 5. **更新**:调用merge()方法可以将一个Detached...

    Detached-Mapper:将整个实体图从任何DTO或词典保存到EntityFramework> = 5。 就像保存一个MongoDB文档一样

    当使用EntityFramework,NHibernate或几乎任何其他跟踪实体状态的ORM时,在安装通常来自反序列化(请求,响应,文件,另一个db等)的未跟踪实体时,存在一个问题。 TrackGraph方法,但是需要手动指定每个实体的状态...

    save, saveOrUpdate, persist, merge, update 区别.docx

    在Java的持久化框架Hibernate中,管理对象与数据库之间的交互是通过一系列的方法完成的,其中包括`save()`, `saveOrUpdate()`, `persist()`, `merge()`, 和 `update()`。这些方法各有其特点和适用场景,理解它们的...

    jpa学习笔记 介绍了jpa中state的概念和应用

    在Java Persistence API (JPA) 中,理解和掌握实体(Entity)的状态对于有效地管理数据库中的对象至关重要。本篇学习笔记主要探讨了JPA中实体的状态及其转换,包括New、Managed、Detached和Removed四种状态。 首先...

    detached:无框架框架

    这种做法允许开发者更加灵活地选择和组合技术,以适应项目需求,同时也避免了因框架升级或淘汰带来的迁移问题。本文将深入探讨无框架框架的核心理念、优势以及实践方法。 一、无框架框架的核心理念 1. **模块化...

    hibernate_reference.pdf

    - **Loading and Storing Objects**: Finally, you'll learn how to load objects from the database into Java instances and persist new or updated Java objects back to the database. #### Mapping ...

    is-dom-detached:确定DOM树中是否不存在节点

    要安装,请在命令行中输入以下命令: npm install is-dom-detached输入ES模块: import isDetachedNode from 'is-dom-detached' ; CommonJS模块: const isDetachedNode = require ( 'is-dom-detached' ) ;用法...

    Clean Architectures in Python A practical approach to better software design

    Clean Architectures in Python A practical approach to better software design By 作者: Leonardo Giordani Pub Date: 2019 ISBN: n/a Pages: 171 Language: English Format: PDF Size: 10 Mb The clean ...

    JPA学习笔记(高手笔记录)

    在JPA开发过程中,可能会遇到如实体不存在、并发控制问题、数据一致性异常等错误。理解这些异常的含义并妥善处理是成功使用JPA的关键。 总结,JPA作为Java的持久化框架,简化了数据库操作,通过注解和元数据实现了...

    spring-jpa

    - **Entity 的生命周期和状态**:包括临时状态(Transient)、托管状态(Managed)、分离状态(Detached)和删除状态(Removed)。 - **持久化 Entity (Persist)**:使用 `persist()` 方法将新的实体实例持久化到...

    jqueryui-detached

    安装包: npm install --save jqueryui-detached-1.11用法这个想法是将这个模块与jquery-detached结合使用。 例如: var $ = require ( 'jquery-detached-2.1.4' ) . newJQuery ( ) ; var jqueryui = require ( '...

Global site tag (gtag.js) - Google Analytics