在方法上使用Transaction()属性时,默认隔离级别为ReadCommitted。我想要做的是在Spring.NET配置中将默认隔离级别设置为ReadUncommitted(以便不修改当前存在的所有Transaction属性定义)
我该怎么办?可以用Spring.NET 1.2完成吗?
我尝试使用tx:advice等跟随the documentation无效。
我甚至介入了Spring with Reflector的代码,但我似乎从中可以理解,是Spring只是从方法的Attribute声明中读取设置。
是否可以完成或我必须完成代码并在必要时修改属性?
答案 0 :(得分: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>
答案 1 :(得分:0)
您应该能够创建自己的事务拦截器,扩展标准事务拦截器。然后使用ObjectNameAutoProxyCreator而不是您引用的TransactionProxyFactoryObject来连接那个。