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条回答

    报告相同问题?

    悬赏问题

    • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
    • ¥15 乘性高斯噪声在深度学习网络中的应用
    • ¥15 运筹学排序问题中的在线排序
    • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
    • ¥30 求一段fortran代码用IVF编译运行的结果
    • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
    • ¥15 C++ 头文件/宏冲突问题解决
    • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
    • ¥50 安卓adb backup备份子用户应用数据失败
    • ¥20 有人能用聚类分析帮我分析一下文本内容嘛