〖JAVA经验〗JAVA技巧(WebService中事务的多种控制方法)

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) {

//Examda提示: 开启一个独立的事务,需独立取得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中自动事务管理的配置,如下:

PROPAGATION_REQUIRED

一起交流学习请访问:Tore_m_1206686_21115_1_1.html”>http://www.shangxueba.com/sTore_m_1206686_21115_1_1.html

人,都有不能称心如意的时候,都有愿望落空的窘迫,

〖JAVA经验〗JAVA技巧(WebService中事务的多种控制方法)

相关文章:

你感兴趣的文章:

标签云: