Nhibernate 在Spring.Net中使用事务属性时,如何覆盖默认隔离级别
在方法上使用Transaction()属性时,默认隔离级别为ReadCommitted。我要做的是在Spring.NET配置中将默认隔离级别设置为ReadUncommitted(以便不修改当前存在的所有事务属性定义) 我该怎么做?可以用Spring.NET1.2完成吗 我试着使用tx:advice等来跟随,但没有效果 我甚至用Reflector介绍了Spring的代码,但我似乎从中了解到,Spring只是从方法的属性声明中读取设置 这是可以做到的,还是我必须检查代码并在必要时修改属性?我通常使用例如:Nhibernate 在Spring.Net中使用事务属性时,如何覆盖默认隔离级别,nhibernate,spring.net,isolation-level,spring-transactions,Nhibernate,Spring.net,Isolation Level,Spring Transactions,在方法上使用Transaction()属性时,默认隔离级别为ReadCommitted。我要做的是在Spring.NET配置中将默认隔离级别设置为ReadUncommitted(以便不修改当前存在的所有事务属性定义) 我该怎么做?可以用Spring.NET1.2完成吗 我试着使用tx:advice等来跟随,但没有效果 我甚至用Reflector介绍了Spring的代码,但我似乎从中了解到,Spring只是从方法的属性声明中读取设置 这是可以做到的,还是我必须检查代码并在必要时修改属性?我通常使用
[Transaction( IsolationLevel.ReadUncommitted )]
关于我的存储库方法。它与
协同工作
您应该能够创建自己的事务拦截器,扩展标准事务拦截器。然后使用ObjectNameAutoProxyCreator而不是您引用的TransactionProxyFactoryObject来连接该对象。谢谢Andreas,但我实际上是想看看是否可以通过在配置文件中设置默认值(对于所有方法)isolationLevel.ReadUncommitted来避免这样做,同时仍然使用[Transaction()]。但我怀疑这是不可能的:-(如果我找到时间,我会尝试编写此代码,但可能不会很快。
<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>