没有用过事务拦截机。一般都用事务代理对象。

解决方案 »

  1.   

    这个能顶上去的吗!?还望大家再帮忙看看。呵呵~~~
      

  2.   

    更新数据必须是更新完之后好通过一个事务提交的,你开始和提交事务没有啊
      

  3.   

    说老实话,你的代理不太规范,还没得注释,看了几分钟才看懂:
    建议以后楼主写spring的XML时,使用这样的格式:
    配置datasource bean
    配置sessionFactory bean
    配置hibernate局部或者全局的事务管理器transactionManager 
    配置事务拦截器transactionInterceptor
    定义BeanNameAutoPoxyCreator配置daoBean
    配置业务逻辑Bean
    你上面的错误应该是:
    <bean id="SendForCA" class="com.sms.dao.impl.SendForCA"> 
          <property name="hibernateTemplate"> 
                <ref bean="hibernateTemplate"/> 
          </property> 
    </bean> 
    这个是你的业务逻辑bean吧?而在你的自动代理中:
    <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"> 
          <property name="beanNames"> 
               <list> 
                   <value>SendFor114 </value> 
               </list> 
          </property> 
          <property name="interceptorNames"> 
               <list> 
                   <value>transactionInterceptor </value> 
               </list> 
          </property> 
    </bean> 
    生成的的代理是SendFor114的自动代理. 而不是业务逻辑Bean的代理你的意思是SendFor114是业务逻辑Bean,而SendFor114仅仅是daoBean,那么
    就差了一项依赖注入配置:
    <bean id="SendFor114" class=".........." >
      <property name="sendForCA" ref="SendForCA" />
    </bean>