org.springframework.orm.hibernate3.HibernateSystemException: Found two representations of
same collection:
com.kuandai.t4.pojo.UserInfo.moveInfos; nested exception is org.hibernate.HibernateException: Found
two representations of same collection:
com.kuandai.t4.pojo.UserInfo.moveInfos
Caused by: org.hibernate.HibernateException: Found two representations of same collection:
com.kuandai.t4.pojo.UserInfo.moveInfos
问题原因:UserDao中的updateUser方法中,更改应用super.getHibernateTemplate().saveOrUpdate(user);
而不是之前的super.getHibernateTemplate().save(user);
save,update,saveOrUpdate的区别:
session.save
1.在session内部缓存中查找待保存对象,即使数据相对以前状态已经发生变化。也将在稍后事务提交时,由脏数据
检查过程加以判定。(有点不懂)
2。如果实体类实现了lifecycle 接口,则调用待保存对象的onsave 方法
3.如果实体类实现了validateble 接口,则调用其validate() 方法。
4。调用对应拦截器的Interceptor.onSave 方法(如果有)
5。构造insert sql 并执行
6。记录插入成功,user.id属性被设定为insert操作返回的新纪录id值。
7。将user 对象放入内部缓存。
8。最后,如果存在级联关系,对级联关系进行递归处理。
session.update
1.首先,根据代更新实体对象的key ,在当前session的内部缓存中进行查找。如果发现,则认为当前实体对象已经
处于persistent 状态。
2。初始化实体对象的状态信息(作为以后脏数据检查的依据),并将其纳入内部缓存。
(这里并没有发送update sql ) ,update sql 在session.flush方法中执行。
session.saveorupdate
1.首先在session 内部缓存中进行查找,发现则直接返回。
2。执行实体类对应的Interceptor.isUnsaved 方法(如果有),判断对象是否为未保存状态。
3。根据upsaved-value判断对象是否处于未保存状态。
4。如果对象未保存(Transient状态),则调用save 方法。
5。如果为已保存(Detached),调用update 方法将对象与session 重新关联。
saveOrUpdate 实际是save 和update 方法的组合应用。
当前数据是transient 状态,我们应该调用save 方法,如果是detached 状态,则应该先通过session.update方法
更新。
使用saveOrUpdate 方法后,就不用判断当前对象的状态了。
分享到:
相关推荐
在开发基于Spring与Hibernate整合的应用时,可能会遇到“`org.springframework.orm.hibernate3.LocalSessionFactoryBean` not found”这样的错误提示。这个问题通常发生在尝试通过Spring管理Hibernate ...
org.springframework.orm-3.0.4.RELEASE.jar org.springframework.oxm-3.0.4.RELEASE.jar org.springframework.spring-library-3.0.4.RELEASE.libd org.springframework.test-3.0.4.RELEASE.jar org.spring...
标题中的"org.springframework.orm.hibernate4.HibernateOptimisticLockingFailureException"是一个具体的异常类型,源自Spring框架的Hibernate4模块。这个异常通常在乐观锁(Optimistic Locking)机制失败时抛出,...
org.springframework.orm-3.0.0.M1.jar
org.springframework.orm-3.0.5.RELEASE.jar org.springframework.oxm-3.0.5.RELEASE.jar org.springframework.test-3.0.5.RELEASE.jar org.springframework.transaction-3.0.5.RELEASE.jar org.springframework.web...
org.springframework.orm-3.1.RELEASE.jar org.springframework.oxm-3.1.RELEASE.jar org.springframework.spring-library-3.1.RELEASE.libd org.springframework.test-3.1.RELEASE.jar org.springframework....
其中,`org.springframework.orm.jar`是Spring框架中的一个子模块,主要关注对象关系映射(ORM)集成,使得Java应用程序能够方便地与各种数据库进行交互。本文将深入探讨Spring ORM模块的核心概念、功能以及实际应用...
org.springframework.orm-3.1.0.M2
org.springframework.orm-3.1.1.RELEASE org.springframework.oxm-3.1.1.RELEASE org.springframework.test-3.1.1.RELEASE org.springframework.transaction-3.1.1.RELEASE org.springframework.web.portlet-3.1.1....
当执行查询操作时,如果根据指定的ID没有找到对应的实体对象,Hibernate会抛出 `org.springframework.orm.ObjectRetrievalFailureException` 异常。例如,在以下场景中: ``` org.springframework.orm....
org.springframework.beans-3.0.0.M4.jar
org.springframework.orm-3.0.0.M4.jar
org.springframework.orm-3.0.0.RELEASE.jar org.springframework.oxm-3.0.0.RELEASE.jar org.springframework.test-3.0.0.RELEASE.jar org.springframework.transaction-3.0.0.RELEASE.jar org.springframework.web...
<bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager"> ``` 2. **使用 `@Transactional` 注解**: 在Service层或具体的业务逻辑方法上添加 `@...
org.springframework.orm-3.0.0.RELEASE org.springframework.oxm-3.0.0.RELEASE org.springframework.spring-library-3.0.0.RELEASE org.springframework.test-3.0.0.RELEASE org.springframework.transaction-...
org.springframework.orm-3.0.0.M4.jar: 整合第三方的ORM框架,如hibernate,ibatis,jdo,以及spring的JPA实现 org.springframework.transaction-3.0.0.M4.jar: 为JDBC、Hibernate、JDO、JPA等提供的一致的声明式和...
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/...
org.springframework.instrument-3.0.5.RELEASE.jar,org.springframework.jdbc-3.0.5.RELEASE.jar,org.springframework.jms-3.0.5.RELEASE.jar,org.springframework.orm-3.0.5.RELEASE.jar,org.springframework....
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"> <value>classpath:SqlMapConfig.xml <bean id="dao" class="org.springframework.orm.ibatis....
org.springframework.orm-3.1.0.RELEASE.jar org.springframework.oxm-3.1.0.RELEASE.jar org.springframework.test-3.1.0.RELEASE.jar org.springframework.transaction-3.1.0.RELEASE.jar org.springframework.web...