1

在方法上使用 Transaction() 属性时,默认隔离级别为 ReadCommitted。我要做的是在 Spring.NET 配置中将默认隔离级别设置为 ReadUncommitted (以免修改当前存在的所有 Transaction 属性定义)

我该怎么做 ?可以用 Spring.NET 1.2 完成吗?

我尝试使用 tx:advice 等遵循文档但无济于事。

我什至已经使用 Reflector 进入了 Spring 的代码,但我似乎从中了解到,Spring 只是从方法的 Attribute 声明中读取设置。

可以完成还是我必须通过代码并在必要时修改属性?

4

2 回答 2

0

您应该能够创建自己的事务拦截器来扩展标准事务拦截器。然后使用 ObjectNameAutoProxyCreator 而不是您引用的 TransactionProxyFactoryObject 连接那个。

于 2011-10-13T12:10:21.903 回答
0

我通常使用例如:

[Transaction( IsolationLevel.ReadUncommitted )]

在我的存储库方法上。它与<tx:attribute-driven transaction-manager="HibernateTransactionManager"/>.

<object
  name="HibernateTransactionManager"
  type="Spring.Data.NHibernate.HibernateTransactionManager, Spring.Data.NHibernate32"
  dependency-check="none">
  <property name="DbProvider" ref="MsSqlDbProvider"/>
  <property name="SessionFactory" ref="SessionFactory"/>
</object>
于 2011-10-12T07:35:32.290 回答