`

jpa遇到的 org.hibernate.PersistentObjectException: detached entity passed to persi

阅读更多
再用hibernate3+spring+struts2开发的是时候遇到一个问题(采用了注解的方式,xml配置的道理是一样的),当我在注册用户的时候,注册第一个用户没有问题,但注册第二个用户开始就会抛出一个异常:


javax.persistence.PersistenceException: org.hibernate.PersistentObjectException: detached entity passed to persist: com.dalton.domain.User

org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException

(AbstractEntityManagerImpl.java:614)
    org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:226)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        …………………………

后来通过println找了原因,当我第二次插入用户的时候,还没有实例化到数据库就有了ID值,而且这个ID值是我第一次插入用户的ID,这是不正常,因为ID没有设置过,而且JPA默认的行为是只要指定了主键生成策略,主键就不能设置了,一旦不为空或者0就被认为是已经保存到了数据库中,一旦调用persist()方法就会抛出上面的异常。

为什么会还有第一次的插入用户的信息呢,原因就是我action的作用域设置错误了,我采用了默认单例的设置,对于Action来说必须采用 prototype(每次调用创建一个对象)的作用域,修改方法是:在Action上就一个注解@Scope("prototype")

这样就OK了。
分享到:
评论

相关推荐

    解决SpringDataJPA报错:org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null w

    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/...

    hibernate-jpa-2.1-api-1.0.2.Final-API文档-中英对照版.zip

    Maven坐标:org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.2.Final; 标签:hibernate、javax、persistence、jpa、api、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开...

    hibernate-jpa-2.1-api-1.0.2.Final-API文档-中文版.zip

    Maven坐标:org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.2.Final; 标签:hibernate、javax、persistence、jpa、api、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index...

    spring-data-jpa-2.0.9.RELEASE-API文档-中文版.zip

    Maven坐标:org.springframework.data:spring-data-jpa:2.0.9.RELEASE; 标签:springframework、data、spring、jpa、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,...

    hibernate错误解决方案

    在使用Hibernate框架进行开发的过程中,经常会遇到各种各样的异常问题。这些问题可能会导致程序无法正常运行,甚至影响到系统的稳定性。本文将针对几个常见的Hibernate错误进行深入分析,并提供相应的解决方法。这些...

    org.hibernate.ejb-library-3.4.0.GA

    标题中的"org.hibernate.ejb-library-3.4.0.GA"是Hibernate Entity Beans的一个特定版本,它是Hibernate框架的一部分,专门用于处理Java Enterprise Edition (EE)环境中的持久化。Hibernate是著名的对象关系映射...

    org.hibernate.ejb-library-3.4.0.GA-A

    标题 "org.hibernate.ejb-library-3.4.0.GA-A" 指示这是一个与Hibernate相关的库,特别针对EJB(Enterprise JavaBeans)版本3.4.0,并且是为OSGi环境优化的。描述中提到它适用于在Virgo Jetty服务器上进行Web开发,...

    org.hibernate.jpa.QueryHints jar包

    org.hibernate.jpa.QueryHints jar hibernate-entitymanager-4.3.0.Final.jar

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

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

    java.lang.NoClassDefFoundError: javax/persistence/EntityListener

    描述中提供的博文链接虽然没有具体内容,但我们可以推测博主可能在尝试使用Spring框架的持久化功能,如JPA(Java Persistence API),而遇到了此问题。`javax.persistence.EntityListener`是JPA中用于定义实体监听器...

    hibernate.5.1.0.jar全部

    包含hibernate所有所需jar包还有一些其他包日志包、jpa支持包等: 列如:hibernate-core-5.1.0.Final.jar hibernate-ehcache-5.1.0.Final.jar hibernate-entitymanager-5.1.0.Final.jar hibernate-envers-5.1.0....

    hibernate jar包

    - `org.hibernate.annotations`包下的注解:如@Entity、@Table、@Column等,定义实体和属性的映射规则。 4. 使用Hibernate的步骤: - 配置Hibernate:创建`hibernate.cfg.xml`文件,设置数据库连接等参数。 - ...

    JPA 开发中遇到的错误

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

    spring-boot-data-jpa-example:Spring Boot!学习之Spring-Data-Jpa

    spring.jpa.hibernate.ddl-auto: update 根据实体生成表结构,实体属性变动时,更新表结构,开发时建议使用这种策略 spring.jpa.hibernate.ddl-auto: validate 启动时校验实体和表结构是否一致, 数据结构稳定时采用...

    hibernate-commons-annotations-5.0.1.Final.jar

    Hibernate Commons Annotations(HCA)是Hibernate框架的一个重要组成部分,它提供了与JPA(Java Persistence API)兼容的元数据注解,使得开发者能够更方便地在Java对象上声明持久化属性和行为。在本文中,我们将...

    springboot+jpa(hibernate配置redis为二级缓存) springboot2.1.4

    spring.jpa.hibernate.cache.region.factory_class=org.hibernate.cache.redis.hibernate5.SingletonRedisRegionFactory ``` 4. **实体类注解**: 对于需要缓存的实体类,可以使用`@Cacheable`、`@CacheEvict`等...

    spring-framework-3.0.5.RELEASE-dependencies-5

    org.apache.openjpa org.apache.axis org.apache.catalina org.apache.commons org.apache.coyote org.apache.ibatis org.apache.juli 4号包: org.apache.tiles org.apache.velocity org.apache.xerces org.apache....

    spring-framework-3.0.5.RELEASE-dependencies-1

    org.apache.openjpa org.apache.axis org.apache.catalina org.apache.commons org.apache.coyote org.apache.ibatis org.apache.juli 4号包: org.apache.tiles org.apache.velocity org.apache.xerces org.apache....

    spring-framework-3.0.5.RELEASE-dependencies-6

    org.apache.openjpa org.apache.axis org.apache.catalina org.apache.commons org.apache.coyote org.apache.ibatis org.apache.juli 4号包: org.apache.tiles org.apache.velocity org.apache.xerces org.apache....

Global site tag (gtag.js) - Google Analytics