Как переопределить уровень изоляции по умолчанию при использовании атрибута Transaction в Spring.Net - PullRequest
1 голос
/ 11 октября 2011

При использовании атрибута Transaction () в методе уровень изоляции по умолчанию - ReadCommitted. То, что я хочу сделать, это установить уровень изоляции по умолчанию ReadUncommitted в конфигурации Spring.NET (чтобы не изменять все определения атрибутов транзакций, которые существуют в настоящее время)

Как мне это сделать? Можно ли это сделать с помощью Spring.NET 1.2?

Я пытался следовать документации , используя tx: advice и т.д. безрезультатно.

Я даже вступил в код Spring с Reflector, но все, что я, похоже, понял из этого, это то, что Spring просто считывает настройки из объявления атрибута метода.

Можно ли это сделать, или мне придется пройти через код и изменить атрибут, где это необходимо?

Ответы [ 2 ]

0 голосов
/ 13 октября 2011

Вы должны иметь возможность создать собственный перехватчик транзакций, который расширяет стандартный перехватчик транзакций.А затем подключите его, используя ObjectNameAutoProxyCreator вместо TransactionProxyFactoryObject, на который вы ссылались.

0 голосов
/ 12 октября 2011

Я обычно использую, например ::100100

[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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...