<bean id="editGuarFacadeImpl" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
        <property name="transactionManager">
            <ref bean="transactionManager" />
        </property>
        <property name="target">
            <ref local="editGuarFacadeImplTarget" />
        </property>
        <property name="transactionAttributes">
            <props>
                <prop key="assess">PROPAGATION_REQUIRED</prop>
                <prop key="addImpa">PROPAGATION_REQUIRED</prop>
                <prop key="updateImpa">PROPAGATION_REQUIRED</prop>
                <prop key="deleteImpa">PROPAGATION_REQUIRED</prop>
                
                
        </property>
    </bean>配置文件如上
assess方法中经常会出现部分表数据写入,而另外一个表(固定的这个表)数据写入失败
但是事务似乎回滚没成功的,部分成功部分失败的状态,不知道有牛人知道解决办法的不

解决方案 »

  1.   

    参考下我写的代码
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
     
    <beans>
     <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" destroy-method="close">
      <property name="driverClassName">
       <value>com.mysql.jdbc.Driver</value>
      </property>
      <property name="url">
       <value>jdbc:mysql://192.168.22.155:3306/e-learning</value>
      </property>
      <property name="username">
       <value>root</value>
      </property>
      <property name="password">
       <value>000</value>
      </property>
     </bean>
     
     
     <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
      <property name="dataSource">
       <ref local="dataSource" />
      </property>
      <property name="mappingResources">
       <list>
        <value>com/hibernate/TUserinfo.hbm.xml</value>
        <value>com/hibernate/TFiletype.hbm.xml</value>
        <value>com/hibernate/TFileinfo.hbm.xml</value>
        <value>com/hibernate/TUserGroup.hbm.xml</value>
        <value>com/hibernate/TRight.hbm.xml</value>
        <value>com/hibernate/TUserlog.hbm.xml</value>
        <value>com/hibernate/TGroup.hbm.xml</value>
       </list>
      </property>
      <property name="hibernateProperties">
       <props>
        <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
        <prop key="hibernate.show_sql">true</prop>
       </props>
      </property>
     </bean>
     
     <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
      <property name="sessionFactory">
       <ref local="sessionFactory" />
      </property>
     </bean>
     
     <bean id="userDAO" class="com.daoimp.TUserinfoDAOImp">
      <property name="sessionFactory">
       <ref local="sessionFactory" />
      </property>
     </bean>
     
     <bean id="userDAOProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
      <property name="transactionManager">
       <ref bean="transactionManager" />
      </property>
      <property name="target">
       <ref local="userDAO" />
      </property>
      <property name="transactionAttributes">
       <props>
        <prop key="insert*">PROPAGATION_REQUIRED</prop>
        <prop key="get*">PROPAGATION_REQUIRED</prop>
        <prop key="is*">PROPAGATION_REQUIRED</prop>
       </props>
      </property>
     </bean>
      

  2.   

    加一句 <prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
      

  3.   

    是啊 你的 editGuarFacadeImplTarget抛得是什么异常?