org.springframework.orm.hibernate3.HibernateTemplate

当session中出现两个相同标示的(相同主键)的对象,一个是持久态,一个是瞬时态,想更新瞬时态对象到数据库,如果不做处理,则报出异常,session中出现两个相同标示的不同对象异常。处理方法。(业务层代码,省去了dao层)

一:通过hibernateTemplate获取映射seession(模拟)

 1 /**
 2      *
 3     * @Title: updateTest
 4     * @Description: TODO(这里用一句话描述这个方法的作用)
 5     * @author 尚晓飞
 6     * @date 2014-9-19 下午7:42:36
 7     * @see org.ledger.service.IntercoursePersionService#updateTest()
 8      */
 9     @Override
10     public void updateTest() {
11         // TODO Auto-generated method stub
12         //持久态的对象
13         IntercoursePersion intercoursePersion=intercoursePersionDao.find("1");
14         String idString=intercoursePersion.getIntercoursePersionId();
15
16         //相当于临时态的新对象,与持久态有相同的主键
17         IntercoursePersion newobj=new IntercoursePersion();
18         newobj.setIntercoursePersionId(idString);
19         newobj.setName("黄天在上");
20
21         //获取hibernate.session对象,将持久态的对象变成游离态。然后修改临时态。通过spring整合的hibernateTemplate获取session
22         Session session=intercoursePersionDao.getHibernateTemplate().getSessionFactory().openSession();
23         session.beginTransaction();
24         session.evict(intercoursePersion);
25         session.update(newobj);
26         session.getTransaction().commit();
27
28
29     }

View Code

二:通过hibernateTemplate将持久态转游离态,保存瞬时态。

 

 1 /**
 2      *
 3     * @Title: updateTest
 4     * @Description: TODO(这里用一句话描述这个方法的作用)
 5     * @author 尚晓飞
 6     * @date 2014-9-19 下午7:42:36
 7     * @see org.ledger.service.IntercoursePersionService#updateTest()
 8      */
 9     @Override
10     public void updateTest() {
11         // TODO Auto-generated method stub
12         //持久态的对象
13         IntercoursePersion intercoursePersion=intercoursePersionDao.find("1");
14         String idString=intercoursePersion.getIntercoursePersionId();
15
16         //相当于临时态的新对象,与持久态有相同的主键
17         IntercoursePersion newobj=new IntercoursePersion();
18         newobj.setIntercoursePersionId(idString);
19         newobj.setName("黄天在上");
20
21         //获取hibernateTemlate对象,将持久态的对象变成游离态,然后保存瞬时态
22         HibernateTemplate hibernateTemplate=intercoursePersionDao.getHibernateTemplate();
23         hibernateTemplate.evict(intercoursePersion);
24         hibernateTemplate.update(newobj);
25
26     }

View Code

 

三:以上简单业务不错,复杂业务报错。有待解决。

 

  

时间: 2024-09-16 01:15:15

org.springframework.orm.hibernate3.HibernateTemplate的相关文章

异常:org.springframework.orm.hibernate3.HibernateJdbcException

.springframework.orm.hibernate3.HibernateJdbcException: JDBC exception on Hibernate data access: SQLException for SQL [insert into tb_news (n_title, n_content, n_style, n_addTime, n_addAdmin, n_isPublish, n_publishTime, n_publishAdmin, n_updateTime,

org.springframework.orm.hibernate4.HibernateOptimisticLockingFailureException

项目是Java Web: 使用框架:struts,hibernate,spring: 构建工具:maven, 使用一个商品管理系统,用于管理超市和商品.   项目结构如下:  执行如下操作时报错:  点击"delete",删除超市时,报错. 注意:是有时候报错,不是每次删除都报错. 报错信息如下: Xml代码   Struts Problem Report      Struts has detected an unhandled exception:   Messages:     

ssh整合-org.springframework.jdbc.UncategorizedSQLException

问题描述 org.springframework.jdbc.UncategorizedSQLException Stacktraces org.springframework.jdbc.UncategorizedSQLException: Hibernate operation: Cannot open connection; uncategorized SQLException for SQL [???]; SQL state [null]; error code [0]; Cannot cr

ssh-spring3中的hibernateTemplate怎么拿不到数据

问题描述 spring3中的hibernateTemplate怎么拿不到数据 <?xml version=""1.0"" encoding=""UTF-8""?> xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:context=""http://www.springframewor

sqlserver-我用hibernateTemplate的find查询出现空指针异常

问题描述 我用hibernateTemplate的find查询出现空指针异常 当查询的那一行数据的外键没有值时可以查得到,但外键有值时则报空指针异常,一下是hibernate的源码部分 public Number selectById(String id){ // TODO Auto-generated method stub String hql="from Number wherer id=?";//报错行 List<Number> list=hibTemplate.f

Struts2.1.6+Spring2.5.6+Hibernate3.3.2+mysql整合+分页模板

Struts2.1.6+Spring2.5.6+Hibernate3.3.2+mysql整合+分页模板 博客分类:Java MySQLHibernateAOPSpringStruts  1.导入29个JAR包   JAR包名称 作用 Struts2.1.6(7个)   struts2-core-2.1.6.jar struts2开发的核心类库 freemarker-2.3.13.jar struts2的UI标签的模板使用freemarker编写 commons-logging-1.0.4.jar

hibernate3报错 XXX is not mapped

以前没有用过hibernate,配置hql时出错. 错误日志如下: org.springframework.orm.hibernate3.HibernateQueryException: crm_person is not mapped [select a.id, (select z.corp.shortName from cn.digitalpublishing.po.CrmCorpTypeRelationship z where z.id = a.department), a.code, a

spring4 整合 hibernate时 产生HibernateTemplate报错

问题描述 spring4 整合 hibernate时 产生HibernateTemplate报错 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'urlMapping' defined in ServletContext resource [/WEB-INF/web-config.xml]: Initialization of bean failed; nested e

SSH配置如何利用hibernateTemplate.update()高效更新数据

问题描述 我的SSH配置是用beans+struts省去hibernate.cfg.xml配置如下:<beanclass="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><propertyname="locations"><value>classpath:jdbc.properties</value></proper