org.springframework.orm.hibernate3.HibernateTemplate
当session中出现两个相同标示的(相同主键)的对象,一个是持久态,一个是瞬时态,想更新瞬时态对象到数据库,如果不做处理,则报出异常,session中出现两个相同标示的不同对象异常。处理方法。(业务层代码,省去了dao层)
一:通过hibernateTemplate获取映射seession(模拟)
/**
*
* @Title: updateTest
* @Description: TODO(这里用一句话描述这个方法的作用)
* @author 尚晓飞
* @date 2014-9-19 下午7:42:36
* @see org.ledger.service.IntercoursePersionService#updateTest()
*/
@Override
public void updateTest() {
// TODO Auto-generated method stub
//持久态的对象
IntercoursePersion intercoursePersion=intercoursePersionDao.find("1");
String idString=intercoursePersion.getIntercoursePersionId(); //相当于临时态的新对象,与持久态有相同的主键
IntercoursePersion newobj=new IntercoursePersion();
newobj.setIntercoursePersionId(idString);
newobj.setName("黄天在上"); //获取hibernate.session对象,将持久态的对象变成游离态。然后修改临时态。通过spring整合的hibernateTemplate获取session
Session session=intercoursePersionDao.getHibernateTemplate().getSessionFactory().openSession();
session.beginTransaction();
session.evict(intercoursePersion);
session.update(newobj);
session.getTransaction().commit(); }
二:通过hibernateTemplate将持久态转游离态,保存瞬时态。
/**
*
* @Title: updateTest
* @Description: TODO(这里用一句话描述这个方法的作用)
* @author 尚晓飞
* @date 2014-9-19 下午7:42:36
* @see org.ledger.service.IntercoursePersionService#updateTest()
*/
@Override
public void updateTest() {
// TODO Auto-generated method stub
//持久态的对象
IntercoursePersion intercoursePersion=intercoursePersionDao.find("1");
String idString=intercoursePersion.getIntercoursePersionId(); //相当于临时态的新对象,与持久态有相同的主键
IntercoursePersion newobj=new IntercoursePersion();
newobj.setIntercoursePersionId(idString);
newobj.setName("黄天在上"); //获取hibernateTemlate对象,将持久态的对象变成游离态,然后保存瞬时态
HibernateTemplate hibernateTemplate=intercoursePersionDao.getHibernateTemplate();
hibernateTemplate.evict(intercoursePersion);
hibernateTemplate.update(newobj); }
三:以上简单业务不错,复杂业务报错。有待解决。
org.springframework.orm.hibernate3.HibernateTemplate的更多相关文章
- org.springframework.orm.hibernate3.HibernateSystemException:
org.springframework.orm.hibernate3.HibernateSystemException: The database returned no natively gener ...
- Initializing connection provider: org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider停住了
2015.1.24进行了服务器的搬家,搬家后,更换了新的IP,导致新的IP访问以前IP的数据库服务无法成功Initializing connection provider: org.springfra ...
- org.springframework.orm.hibernate3.LocalSessionFactoryBean的疑惑解决办法
在项目中使用了SSH框架(Struts2 + Spring3+ Hibernate3),applicationContext中配置了sessionFactory <bean id="s ...
- org.springframework.orm.hibernate3.support.OpenSessionInViewFilter作用
在Spring与Hibernate集成时在web.xml要加入这样的过滤器: <filter> <filter-name>openSessionInView</filte ...
- Caused by: java.lang.ClassNotFoundException: org.springframework.orm.hibernate4.HibernateTemplate
1.错误描述 严重: Context initialization failed org.springframework.beans.factory.CannotLoadBeanClassExcept ...
- applicationContext.xml报错org.springframework.orm.hibernate3.LocalSessionFactoryBean not found
applicationContext.xml报错org.springframework.orm.hibernate3.LocalSessionFactoryBean not found 解决办法: 1 ...
- hibernate4 , spring3 使用 org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean 报错 Implementing class
错误代码如下 Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with ...
- java.lang.ClassNotFoundException: org.springframework.orm.hibernate3.LocalSessionFactoryBean
Caused by: java.lang.ClassNotFoundException: org.springframework.orm.hibernate3.LocalSessionFactoryB ...
- org.springframework.orm.hibernate3.LocalSessionFactoryBean
Spring整合hibernate在配置sessionFactory时, 启动总是报出javax.transaction.TransactionManager找不到. 原因是:缺少jar包,jta-1 ...
随机推荐
- Transactions and beyond it..
While data integrity is managed very effectively within a single database with row locking, deadlock ...
- 分布式ID方案有哪些以及各自的优势
1. 背景 在分布式系统中,经常需要对大量的数据.消息.http请求等进行唯一标识.例如:在分布式系统之间http请求需要唯一标识,调用链路分析的时候需要使用这个唯一标识.这个时候数据自增主键已 ...
- bzoj1630 / bzoj2023 [Usaco2005 Nov]Ant Counting 数蚂蚁
Description 有一天,贝茜无聊地坐在蚂蚁洞前看蚂蚁们进进出出地搬运食物.很快贝茜发现有些蚂蚁长得几乎一模一样,于是她认为那些蚂蚁是兄弟,也就是说它们是同一个家族里的成员.她也发现整个 ...
- 20145221 《Java程序设计》第七周学习总结
20145221 <Java程序设计>第七周学习总结 教材学习内容总结 第十二章部分 - Lambda 认识Lambda语法 Lambda去可以重复,符合DRY原则,而且Lambda表达式 ...
- 从头到尾测地理解KMP算法【转】
本文转载自:http://blog.csdn.net/v_july_v/article/details/7041827 1. 引言 本KMP原文最初写于2年多前的2011年12月,因当时初次接触KMP ...
- 【Java----字符串转义与反转义】
apache工具包common-lang中有一个很有用的处理字符串的工具类,其中之一就是StringEscapeUtils,这个工具类是在2.3版本以上加上的去的,利用它能很方便的进行html,xml ...
- MyBatis基本工作原理
Application是程序员开发的Java代码,蓝色为MyBatis框架. API是MyBatis提供的增删改查等功能接口. 老式SQL写法我们在Dao中写SQL: SELECT * FROM us ...
- Flask 6 模板2
NOTE Jinja2提供了多种控制程序,可以用来改变模板的渲染流程. 1.在模板中使用条件控制语句: templates/condition.html: {% if user %} Hello, { ...
- 总结关于express vue-cli
零零散散,拼起来,花了不少时间,这回把一些东西拼一下吧,免得到时又得重头开始,Blog还没弄好,打算用这些重新写一个,稍接不上,就落后了,这是技术,技术是不断更新换代的,明天这个框架,可以后天就有一个 ...
- HDU 5816 状压DP&排列组合
---恢复内容开始--- Hearthstone Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java ...