WebService中事务的多种控制方法
? public class UpdateBussiness extends HibernateDaoSupport implements Iupdate {? ?????????public String NewBrda(String mzhm,Long brxz,String brxm,Integer brxb, ?//开启一个独立的事务,需独立取得rowid并需将结果马上写回数据库.(手动管理) ?Session session = getHibernateTemplate().getSessionFactory().openSession(); ??Transaction tran = session.beginTransaction(); ??Long ll_rowid; ??GyIdentity iden = (GyIdentity)session.load(GyIdentity.class,"MS_BRDA",LockMode.UPGRADE); ??ll_rowid = iden.getValue(); ??ll_rowid = ll_rowid + 1; ??iden.setValue(ll_rowid); ??try{ ??MsYgpjId? pjid = new MsYgpjId();
??if(ygpj==null){ ???log4j.error(mzhm+","+brxm+":"+errlist.getError_3()); //请一定注意以下语句,实现spring框架的自动事务管理时,对于根据需要返回结果, ?? //不进行事务提交时,一定要清空hibernate的缓存, ?? //如不然,webservice成功调用结束后,缓存内的数据仍会写回数据库。 ??getHibernateTemplate().update(ygpj); ??getHibernateTemplate().save(brda);?//需进行自动事务管理 ??return mzhm_new;; ? 在applicationContext.xml中自动事务管理的配置,如下: ??? <bean id="UpdateBussiness" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> ?????? <property name="transactionManager" ref="transactionManager"/> ?????? <property name="target" ref="UpdateHib"/> ?????? <property name="transactionAttributes"> ?????????? <props>?????????? ?????????? <prop key="*">PROPAGATION_REQUIRED</prop>??????????? ?????????? </props> ?????? </property> ??? </bean> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |