JpanA 2014-04-24 02:55 采纳率: 0%
浏览 1513

ssh 事务管理配置不能回滚

以下是我的配置信息

<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
      <property name="sessionFactory" ref="sessionFactory" />
</bean> 
<bean id="transactionBase" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
        lazy-init="true" abstract="true">
<!-- 配置事务管理器 -->            
    <property name="transactionManager" ref="transactionManager" />
<!-- 配置事务属性 -->            
    <property name="transactionAttributes">
          <props>
               <prop key="add*">PROPAGATION_REQUIRED</prop>
               <prop key="edit*">PROPAGATION_REQUIRED</prop>
               <prop key="find*">PROPAGATION_REQUIRED</prop>
               <prop key="*">PROPAGATION_REQUIRED</prop>
          </props>           
    </property>       
</bean>

<bean id="daotarget" class="JayTan.Transport.DAO.baseDAO">
    <property name="sessionFactory">
        <ref bean="sessionFactory"/>
    </property>
</bean>
<bean id="serviceTarget" class="JayTan.Transport.Service.ServerCheckTicket">
    <property name="dao">
        <ref bean="daotarget"/>
    </property>
</bean>

<bean id="service" parent="transactionBase">
    <property name="target">
        <ref bean="serviceTarget"/>
    </property>
</bean>

在action中调用如下

public String getCheckTicketMsg(){
    String strClassCode = this.getRequest().getParameter("strClasCode").toString().trim();
    String strSeatNum = this.getRequest().getParameter("id").toString().trim();
    String strTicketNum  = this.getRequest().getParameter("ticketNum").toString().trim();

    //1:查询对应的座位ID..
    Integer intSeatId = Integer.parseInt(this.checkTicketServer.queryCarSeatIdByClassNumCode(strClassCode, strSeatNum).get(0).toString().trim());
    //2:根据ID查询座位对象。
    CarSeat seatEntity = checkTicketServer.queryCarSeatEntity(intSeatId).get(0);
    //3:修改对象的信息并写入到数据库。
    seatEntity.setIsChcket(true);//检票,修改状态。。
    if(this.checkTicketServer.modfiyEntityStatus(seatEntity)){
        //准备一个检票对象,添加一些信息到数据库
        TicketSell sellEntity = (TicketSell) checkTicketServer.querySellIdByTicketNum(strTicketNum, strSeatNum).get(0);
        Integer intSellId = Integer.parseInt(sellEntity.getTicketSellId().toString().trim());
        TicketCheck cheEntity = new TicketCheck(intSellId, getCurrDateTime(), getCurrTime());

        if(checkTicketServer.addAllEntityMsg(cheEntity) > 0){

            strMsg = "OK";
        }else{
            strMsg = "NO";
        }
    }

我希望当

TicketSell sellEntity = (TicketSell) checkTicketServer.querySellIdByTicketNum(strTicketNum, strSeatNum).get(0);出错时回滚上边的
if(this.checkTicketServer.modfiyEntityStatus(seatEntity))里面的修改操作。如上配置不可行。请求高手帮忙告诉解决方法。。
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
    • ¥15 如何处理复杂数据表格的除法运算
    • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
    • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
    • ¥200 uniapp长期运行卡死问题解决
    • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
    • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
    • ¥15 乘性高斯噪声在深度学习网络中的应用
    • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
    • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集