如果你用了opensessioninview,但是spring没有配置事务,就会出现这个问题
所以要在spring中配置事务!

解决方案 »

  1.   

    我用了opensessioninview,但我也spring中配置了事务啊
      

  2.   

    这是spring中的配置
    <bean id="userManager" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
         <property name="transactionManager">
              <ref bean="transactionManager"/>
         </property>
         <property name="target">
              <ref local="userManagerWithOneAdvice"/>
         </property>
         <property name="transactionAttributes">
             <props>
                <prop key="save*">PROPAGATION_REQUIRED</prop>
                <prop key="remove*">PROPAGATION_REQUIRED</prop>
                    <prop key="update*">PROPAGATION_REQUIRED</prop>
                    <prop key="insert*">PROPAGATION_REQUIRED</prop>
             </props>
         </property>
    </bean>
      

  3.   

    应该是2楼说的情况
    你的service层调用方法名是什么
    没有加到
    <property name="transactionAttributes"> 
            <props> 
                <prop key="save*">PROPAGATION_REQUIRED </prop> 
                <prop key="remove*">PROPAGATION_REQUIRED </prop> 
                    <prop key="update*">PROPAGATION_REQUIRED </prop> 
                    <prop key="insert*">PROPAGATION_REQUIRED </prop> 
            </props> 
    这里面吧
      

  4.   

    调用的是insertUser(),我把web.xml加上         <init-param>
            <param-name>singleSession</param-name>
            <param-value>false</param-value>
        </init-param>是没问题了,但是我明明是有事务的声明啊?
      

  5.   

    你看一下控制台输出,看事务是否真正的被执行了!你的是老系统吗,spring是1.x吗,如果是2.x的话,建议你使用aop方式事务配置
      

  6.   

    我是用的AOP方式事务配置,怎么在控制台输出?