如何为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。只是想知道是否有人可以帮助我。感谢。
答案 0 :(得分:1)
TransactionManager
可以是DataSourceTransactionManager或JtaTransactionManager或JpaTransactionManager,我们可以使用@Transactional
注释来配置隔离级别。
如果上下文文件启用了<tx:annotation-driven />
,该文件支持DAO或服务级别上的注释,则会识别该事务。
isolation
属性允许您配置它们。
@Transactional
@Transactional(isolation = Isolation.READ_COMMITTED)
参考:Isolation levels,Transactional
我不确定配置xml文件
希望这有助于。 :)