0

DataSourceTransactionManager のカスタム分離レベルを有効にする方法は?

春の構成ファイルには次のものがあります。

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

<bean id="myTransactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true" lazy-init="false" autowire="default" dependency-check="default">
  <property name="transactionManager">
     <ref bean="transactionManager" /> 
  </property>
  <property name="transactionAttributes">
     <props>
        <prop key="cancel">PROPAGATION_REQUIRED,ISOLATION_READ_UNCOMMITTED,timeout_25,-Exception</prop>
     </props>
  </property>
</bean> 

しかし、実行しようとすると、次のエラーが表示されます。

org.springframework.transaction.InvalidIsolationLevelException: JtaTransactionManager does not support custom isolation levels by default - switch 'allowCustomIsolationLevels' to 'true'

JtaTransactionManager を使用していませんが、これについて警告が表示されるのはなぜですか? また、DataSourceTransactionManager のカスタム分離レベルを有効にするにはどうすればよいですか? ドキュメントでは、このクラスがカスタム分離レベルをサポートすると述べられていましたが、オンラインで例を見つけられませんでした。そのほとんどは JtaTransactionManager 専用です。誰かが私を助けてくれるかどうか疑問に思っています。ありがとう。

4

1 に答える 1

1

TransactionManagerDataSourceTransactionManager、JtaTransactionManager、またはJpaTransactionManagerのいずれでもかまいませんが、@Transactionalアノテーションを使用して分離レベルを構成できます。

DAOまたはサービスレベルに配置された注釈をサポートするコンテキストファイルが有効になっている場合<tx:annotation-driven />、トランザクションを認識します。

isolationの属性を@Transactional使用すると、それらを構成できます。

@Transactional(isolation = Isolation.READ_COMMITTED) public void save(Country country) { // do some operations }

参照:分離レベルトランザクション

xmlファイルの構成がよくわかりません

お役に立てれば。:)

于 2012-12-20T15:15:28.513 に答える