FlushMode previous = session.getFlushMode(); 
  session.flush(); 
  session.setFlushMode(FlushMode.NEVER);
  // Do some querying 
  // Do some more querying
   // Really load up that session
   // Execute a few more queries 
  // Write back to some tables 
  session.flush();
  session.setFlushMode(previous);

解决方案 »

  1.   

     sureyor  谢谢你
    我明白你写的过程,可我想做的是,不要在程序中指定
    session.setFlushMode(FlushMode.NEVER); 
    而是想在配置文件中指定FlushMode为NEVER。
      

  2.   

    <!-- 配置事务拦截器 -->
        <bean id="transactionInterceptor" abstract="true" 
                class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
            <!-- 关联事务管理器 -->
            <property name="transactionManager" ref="transactionManager" />
            <property name="transactionAttributes">
                <!-- 配置所拦截方法的事务应用方式 -->
                <props>
                    <prop key="regist*">PROPAGATION_REQUIRED</prop>
                    <prop key="update*">PROPAGATION_REQUIRED</prop>
                    <prop key="remove*">PROPAGATION_REQUIRED</prop>
                    <prop key="get*">PROPAGATION_SUPPORTS,readOnly</prop>
                    <prop key="tx*">PROPAGATION_REQUIRED, -Exception</prop>
                    <prop key="*">PROPAGATION_SUPPORTS,readOnly</prop>
                </props>
            </property>
        </bean>不知道这样行不行
      

  3.   

    没用、、必须从新配置 FlushMode来覆盖hibernate里面的配置 不然的话会对数据库操作失败 。