我采用的是注解的方式@Transactional,这个应该是自动提交事务的吧,但更新语句出现后,数据并未更新到数据库,求解

解决方案 »

  1.   

    @Transactional
    public void saveDeptIp(HsDept deptSaveIp)
    {
    hsDeptDao.save(deptSaveIp);
    }public void save(final T entity) {
    Assert.notNull(entity, "entity涓嶈兘涓虹┖");
    getSession().saveOrUpdate(entity);
    logger.debug("save entity: {}", entity);
    }
      

  2.   

    追踪源码,发现DefaultSaveOrUpdateEventListener中的performSaveOrUpdate方法,返回的是PERSISTENT(持久化)的值0,由此应该是要往数据库更新的
      

  3.   

    换成
    @Transactional(propagation=Propagation.REQUIRED)
    试试
      

  4.   

    试了@Transactional(propagation=Propagation.REQUIRED)跟@Transactional(propagation=Propagation.REQUIRES_NEW)都不行
      

  5.   

    spring配置文件 ,是否开启了注解事务。
      

  6.   

    开启了:<!-- 使用annotation定义事务 -->
        <tx:annotation-driven transaction-manager="txManager" proxy-target-class="true" /> 
    PS:
    我使用的是多数据源事务,不知道这个会不会有影响,查询都是没问题的
      

  7.   

     @Transactional
     放到类上,别放到方法上。试试。
      

  8.   

    不行,如果查询没问题的,是不是可以排除Hibernate配置的问题?
      

  9.   

    在的,配置的是打扫整个项目
     <!-- 使用annotation 自动注册bean,并保证@Required,@Autowired的属性被注入 -->
        <context:component-scan base-package="com.ff.study" />
      

  10.   

    我用的是JTATransactionManager来实现多数据源事务管理的配置   <!-- 事务管理器 多数据源事务 -->
           <bean id="atomikosTransactionManager" class="com.atomikos.icatch.jta.UserTransactionManager" init-method="init" destroy-method="close">   
            <property name="forceShutdown"><value>true</value></property>   
        </bean>   
           
        <bean id="atomikosUserTransaction" class="com.atomikos.icatch.jta.UserTransactionImp">   
            <property name="transactionTimeout" value="300"/>    
        </bean>   
        
        <bean id="txManager" class="org.springframework.transaction.jta.JtaTransactionManager" >
         <property name="transactionManager" ref="atomikosTransactionManager" />
            <property name="userTransaction" ref="atomikosUserTransaction"/>
             <property name="allowCustomIsolationLevels" value="true"/>
        </bean> 
      

  11.   

    我觉得也是配置的问题,java的配置真麻烦啊,轰轰轰轰,楼主耐心点看
      

  12.   

    尝试在配置文件中加入<tx:annotation-driven/>