加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

WebService中事务的多种控制方法

发布时间:2020-12-17 02:38:32 所属栏目:安全 来源:网络整理
导读:? public class UpdateBussiness extends HibernateDaoSupport implements Iupdate {? ?????????public String NewBrda(String mzhm,Long brxz,String brxm,Integer brxb, ???String csny,String hkdz,String jtdh,String bxhm,String czgh) {?? ? ?// 开启

?

public class UpdateBussiness extends HibernateDaoSupport implements Iupdate {?

?????????public String NewBrda(String mzhm,Long brxz,String brxm,Integer brxb,
???String csny,String hkdz,String jtdh,String bxhm,String czgh) {??
?

?//开启一个独立的事务,需独立取得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{
???session.saveOrUpdate(iden);
???tran.commit();
??}catch(Exception ex){
???tran.rollback();
???log4j.error(mzhm+","+brxm+":"+errlist.getError_1());
???return "-1";
??}finally{
???session.clear();
???session.close();
??}
??//事务结束

??

??MsYgpjId? pjid = new MsYgpjId();
??pjid.setPjlx(new Long(3));
??pjid.setYgdm(czgh);


??MsYgpj ygpj = (MsYgpj)getHibernateTemplate().get(MsYgpj.class,pjid);

??if(ygpj==null){

???log4j.error(mzhm+","+brxm+":"+errlist.getError_3());

  //请一定注意以下语句,实现spring框架的自动事务管理时,对于根据需要返回结果,

?? //不进行事务提交时,一定要清空hibernate缓存,

?? //如不然,webservice成功调用结束后,缓存内的数据仍会写回数据库。
???getHibernateTemplate().clear();?
???return "-3";
??}?

??getHibernateTemplate().update(ygpj);
??MsBrda brda = new MsBrda();
??brda.setBrid(ll_rowid);
??brda.setBrxb(new Long(brxb));
??brda.setBrxm(brxm);
??brda.setBrxz(brxz);
??brda.setBxhm(bxhm);
??brda.setCsny(date1);
??brda.setHkdz(hkdz);
??brda.setJtdh(jtdh);

??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>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读