此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
楼主【hys21】截止到2008-07-18 21:39:25的历史汇总数据(不包括此帖):
发帖的总数量:4                        发帖的总分数:50                       每贴平均分数:12                       
回帖的总数量:34                       得分贴总数量:16                       回帖的得分率:47%                      
结贴的总数量:4                        结贴的总分数:50                       
无满意结贴数:1                        无满意结贴分:0                        
未结的帖子数:0                        未结的总分数:0                        
结贴的百分比:100.00%               结分的百分比:100.00%                  
无满意结贴率:25.00 %               无满意结分率:0.00  %                  
敬礼!

解决方案 »

  1.   

    楼主是不是调用(DeptDAO)getBean("deptDAOService");
      

  2.   

    没有啊,在action里面注入的DAO,然后调用DAO的方法
    中间没有写服务层!
      

  3.   

    LZ的事物开启在 service,但是直接调用了dao ,等于没有运行事物,何来事物管理.
      

  4.   

    deptDAOService 这个类并不存在哈,只是随便取个名字,他主要是继承父类
      

  5.   

    没说是类,但spring明显已经定义了该bean ,不用的话不是白定义了一个普通class再怎么,也不可能自己生成事务不明白的话,楼主该去看看代理类proxy
      

  6.   

    晕,他继承了父类的类class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
      

  7.   

    楼主似乎还没开窍,重头说一遍
    deptDAO是DeptDAO的一个普通的对象
    deptDAOService是deptDAO的代理实例,spring中定义了deptDAOService的一些事务处理
    所以必须调用getBean("deptDAOService")
    deptDAO还是普通的对象
      

  8.   

    你的配置没啥问题,贴出action代码,看看在action中怎么加载的spring,通常在struts1的action中这么加载
    实现setServlet方法如下,你应该这么些 private DeptDAO deptDAO;
    @Override
    public void setServlet(ActionServlet servlet) {
    ServletContext context = servlet.getServletContext();
    ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(context);
    this.deptDAO = (UserService)ctx.getBean("deptDAOService");
    super.setServlet(servlet);
    }然后再在execute方法中
    this.deptDAO.deleteXxx()............
    this.deptDAO.saveXxx()............
      

  9.   

            <property name="transactionAttributes"> 这个是重那里来的?
                <props>
                    <prop key="save*">PROPAGATION_REQUIRED</prop>
                    <prop key="delete*">PROPAGATION_REQUIRED</prop>
                </props>
            </property>应该这样写吧
    <bean id="namingTransactionAttribute"
    class="org.springframework.transaction.interceptor.NameMatchTransactionAttributeSource">
    <property name="properties">
    <props>
    <prop key="save*">
    PROPAGATION_REQUIRES_NEW,ISOLATION_DEFAULT,-RollbackableBizException
    </prop>
    <prop key="update*">
    PROPAGATION_REQUIRES_NEW,ISOLATION_DEFAULT,-RollbackableBizException
    </prop>
                            </props>
                     </property> 
    </bean>
      

  10.   

    谢谢大家帮忙,问题已解决,原因就是这里
    <bean id="sessionFactory"
            class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
            <property name="configLocation"
                value="classpath:hibernate.cfg.xml">
            </property>
        </bean>这里需要再引入个dateSource属性才行,不知为何.可能是他们俩整合时框架自身的问题吧楼上那位,你用的是按名称声明事务,和我的方法不一样.你可以查阅相关资料.上面那位问我ACTION是怎么写的,我的ACTION很简单,直接用spring注入,然后使用.没有你那些代码,但同样没有问题.最好还是谢谢各位!