我使用的弹簧3.0.3,3.0.2的MyBatis和MyBatis的弹簧1.0.0在Apache Tomcat 6.0.29。

我已经使用弹簧的声明性事务的事务管理。问题是,交易也不是为我工作。该交易只能使用一次,之后什么都没有。

我已经试过检查所有我的configs,但没有任何线索。任何指针?

我的配置看起来像这样 -

    <tx:advice id="txAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="*" propagation="REQUIRED" />
        </tx:attributes>
    </tx:advice>

    <aop:config>
        <aop:pointcut id="dtxops"
            expression="execution(* com.service.*.*(..))" />
        <aop:advisor advice-ref="txAdvice" pointcut-ref="dtxops" />
    </aop:config>

EDIT评论后-------------

我启动服务器,并执行一些事务处理功能,有些时候它的工作原理有些时候也不能。有时,它不断进行5-6次的工作,然后突然停止。

TX管理器和DS的配置 -

<bean id="transactionManager"
        class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource">
            <ref bean="dataSource" />
        </property>
    </bean>

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
        <property name="resourceRef" value="true" />
        <property name="jndiName" value="java:comp/env/jdbc/MyDBInstance" />
    </bean>
有帮助吗?

解决方案

你有没有在春季或Tomcat配置数据源你? (Tomcat有一些奇怪的默认设置会自动提交每一个我的猜测使得它很难运行的DataSourceTransactionManager在上面语句后)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top