spring中service的A方法调用B方法,只B中一条数据不成功,A和B都进行事务回滚?怎么操作 谢谢 我是新手
老大不笑 2013-09-04 07:34:40 service方法:
@Override
public String add(IBaseModel modelObj) throws Exception {
KmAssetApplyBase applyModel = (KmAssetApplyBase) modelObj;
//申请单待审,加锁
if(applyModel.getDocStatus().equals("20")){
JSONArray jsonArray=updateLockedCards(applyModel);
if(!jsonArray.isEmpty()){
//TODO 事务回滚
}
}
return super.add(modelObj);
}
public JSONArray updateLockedCards(IBaseModel model) throws Exception{
JSONArray jsonArr = new JSONArray();
JSONObject jsonObj = new JSONObject();
if (model instanceof KmAssetApplyBase) {
KmAssetCard card=null;
//处置单
if (model instanceof KmAssetApplyDeal) {
KmAssetApplyDeal deal=(KmAssetApplyDeal)model;
List<KmAssetApplyDealList> dealLists=deal.getFdApplyDealList();
for(KmAssetApplyDealList dealList:dealLists){
card=dealList.getFdAssetCard();
if(!kmAssetCardService.updateLock(card.getFdId())){
//加锁不成功
jsonObj.put("fdNo",card.getFdNo());
jsonObj.put("fdName",card.getFdName());
jsonArr.add(jsonObj);
}
}
}
spring中配置: <property name="transactionAttributes">
<props>
<prop key="add*">PROPAGATION_REQUIRED</prop>
<prop key="copy*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
<prop key="init*">PROPAGATION_REQUIRED</prop>
<prop key="clone*">PROPAGATION_REQUIRED</prop>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
描述:当updateLockedCards的for循环中的一条数据操作不成功时,那么在add()方法中对所有的数据库操作失效,进行事务回滚 ,怎么操作哦
新手求帮助 谢谢!