【发布时间】:2013-05-26 00:24:35
【问题描述】:
我正在使用Callable接口在serviceImpl中编写多线程程序。我正在使用spring事务管理器。当在DB中执行更新操作时,它执行成功。但是更新的数据没有反映在DB中。但是当我在没有多线程的情况下运行程序,它会在 DB 中更新。
这是我的配置
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="*" />
<tx:method name="find*" propagation="NOT_SUPPORTED" />
<tx:method name="get*" propagation="NOT_SUPPORTED" />
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="serviceOperation" expression="execution(* *..*ServiceImpl.*(..))" />
<aop:advisor advice-ref="txAdvice" pointcut-ref="serviceOperation" />
</aop:config>
<bean id="txManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
我可以转移到事务管理器的另一种方法。只是我想确认这种方法是否支持多线程。 所以我的问题是 spring事务管理器是否支持多线程(我的意思是通过声明注解或XML) 为什么在我的情况下更新的数据没有反映在数据库中? 最好的替代方法是什么?
【问题讨论】:
标签: java spring spring-transactions