小弟现在用的是spring mvc + hibernate
使用open session in view
下面是配置spring bean的部分代码
<bean id="bidNoticeManagerImpl" 
class="cn.bidlink.procurement.bid.service.impl.BidNoticeManagerImpl" autowire="byName">
<property name="bidNoticeDao"><ref bean="bidNoticeDao"/></property>
  </bean> <bean id="bidProjectManager" parent="txProxyTemplate">
        <property name="target"><ref bean="bidProjectManagerImpl"/></property>
        <property name="transactionAttributes">
            <props>
                <prop key="create*">PROPAGATION_REQUIRED</prop>
                <prop key="*">PROPAGATION_REQUIRED</prop>
            </props>
        </property>
<property name="proxyInterfaces">
<value>cn.bidlink.procurement.bid.service.IBidProjectManager</value>
</property>
    </bean>想请教一下
1.在一个action中 注入多个manager,他们使用的是一个事物 还是多个事物?
2.如果action,调用aManager,aManager中注入bManager,调用bManager时使用的是aManager的事物,还是bManager创建一个新事物.
3.现在在上面1的情况下,如果aManage提交成功,bManage提交出现异常.aManager事物不会回滚,请问有什么好的方式解决么?
希望兄弟们给我解惑. 给点资料.  谢谢

解决方案 »

  1.   

    Spring可以自动提交事物的,干吗还注入多个manager啊  直接这样不行啦,不要全部复制,看自己的项目做一点修改<!-- 事物 -->
    <bean id="transactionManager"
    class="org.springframework.orm.hibernate3.HibernateTransactionManager"
    parent="baseDao">
    </bean> <tx:advice id="mytx" transaction-manager="transactionManager">
    <tx:attributes>
    <tx:method name="*" />
    </tx:attributes>
    </tx:advice> <!-- 织入 -->
    <aop:config>
    <aop:advisor advice-ref="mytx"
    pointcut="execution(* com.iservice.*.*(..))" />
    </aop:config>
      

  2.   

    感谢楼上回答.
    但是框架是已经定义好的,没有使用springside. 是老的一个接口一个实现类那种.
    三层action->manager->dao
    代码规范:举个例子: 现有用户User,和角色Role
    他们定义了各自的manager,来实现一些接口 供其他业务调用
    UserAction 中,注入userManager和roleManager 而不是吧roleManager的业务放在userManager中实现.
    所以一个action中注入多个manager很正常.
    自己找了些资料 没看明白 所以来请教各路大侠. 
      

  3.   

    1.在一个action中 注入多个manager,他们使用的是一个事物 还是多个事物?应该是多个事务;2.如果action,调用aManager,aManager中注入bManager,调用bManager时使用的是aManager的事物,还是bManager创建一个新事物.每个manager使用自己的事务;3.现在在上面1的情况下,如果aManage提交成功,bManage提交出现异常.aManager事物不会回滚,请问有什么好的方式解决么?在manager调用其它manager的时候,做好excetion的管理,如果bM出现异常,直接将aM回滚。
      

  4.   

    感谢xiaoniqiu
    能给第三个问题 举个小例子么?  谢谢
      

  5.   

    第三个 问题 localThread  隔离事物  独自执行