私は自分のプロジェクトで Spring + mybatis を使用@Transactional
しており、トランザクションを開始するために使用したいので、my にいくつかの構成コードを追加します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
。