我在我的项目中使用的是Spring + mybatis,并且想用它@Transactional
来启动事务,所以我在我的添加了一些配置代码dataSource.xml
:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"
default-lazy-init="true">
<tx:annotation-driven transaction-manager="oracletransactionManager"/>
<bean id="oracletransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="oracledataSourceWrite"/>
</bean>
这是我的测试代码的一部分:
@Transactional
public void testTransaction() throws Exception {
// insert operation 1 without error
// insert operation 2 with exception ,on purpose, such as some data too long for column in mysql
}
运行测试后,insert operation 1
插入数据库成功,insert operation 2
失败,因此Transaction
不再工作,谁能帮帮我???
我在我的主要功能中测试它。
编辑:
最后,我通过使用TransactionProxyFactoryBean
.