<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="configLocation">
            <value>classpath:hibernate.cfg.xml</value>
        </property>
    </bean>
</beans>
那位高手给小弟看看我这spring事务哪有错我执行插入更新还有删除时控制台打印出了执行sql语句但是事务还是没有提交哪位高手给解决解决

解决方案 »

  1.   

    <!-- 集成Hibernate -->
    <bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="configLocation"
    value="classpath:hibernate.cfg.xml">
    </property>
    </bean> <!-- 事务控制 -->
    <bean id="transactionManager"
    class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory">
    <ref local="sessionFactory" />
    </property>
    </bean> <!-- 事务代理基类 -->
    <bean id="baseTxProxy"
    class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
    abstract="true">
    <property name="transactionManager">
    <ref local="transactionManager" />
    </property>
    <property name="transactionAttributes">
    <props>
    <prop key="get*">
    PROPAGATION_REQUIRED,readOnly,-Exception
    </prop>
    <prop key="sget*">PROPAGATION_REQUIRED,-Exception</prop>
    <prop key="exist*">
    PROPAGATION_REQUIRED,readOnly,-Exception
    </prop>
    <prop key="list*">
    PROPAGATION_REQUIRED,readOnly,-Exception
    </prop>
    <prop key="select*">
    PROPAGATION_REQUIRED,readOnly,-Exception
    </prop>
    <prop key="create*">
    PROPAGATION_REQUIRED,readOnly,-Exception
    </prop>
    <prop key="save*">PROPAGATION_REQUIRED,-Exception</prop>
    <prop key="update*">
    PROPAGATION_REQUIRED,-Exception
    </prop>
    <prop key="del*">PROPAGATION_REQUIRED,-Exception</prop>
    <prop key="stat*">PROPAGATION_REQUIRED,-Exception</prop>
    <prop key="is*">PROPAGATION_REQUIRED,-Exception</prop>
    <prop key="dis*">PROPAGATION_REQUIRED,-Exception</prop>
    <prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
    </props>
    </property>
    </bean>
      

  2.   

    你只定义了一个事务管理bean,而没有配置事务的内容,默认的是支持查询的,如果要进行insert or update  or  delete 等操作的时候还要调用事务的内容,看看该方法能否执行该操作!
      

  3.   

    在spring的配置文件里加上。<bean id="transactionProxyTemplate" abstract="true" lazy-init="true"
            class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
            <property name="transactionManager">
                <ref bean="transactionManager" />
            </property>
            <property name="transactionAttributes">
                <props>
                    <prop key="save*">PROPAGATION_REQUIRED</prop>
                    <prop key="update*">PROPAGATION_REQUIRED</prop>
                    <prop key="remove*">PROPAGATION_REQUIRED</prop>
                    <prop key="create*">PROPAGATION_REQUIRED</prop>
                    <prop key="submit*">PROPAGATION_REQUIRED</prop>
                    <prop key="withdraw*">PROPAGATION_REQUIRED</prop>
                    <prop key="distribute*">PROPAGATION_REQUIRED</prop>
                </props>
            </property>
        </bean>spring的事务控制通过AOP配置实现。