Свободное отображение и транзакции Spring .NET не работают вместе - PullRequest
1 голос
/ 28 ноября 2010

У меня странная проблема с Fluent, NHibernate и Spring.net. Мой проект - это проект ASP.NET MVC 2.0 (.net 4.0).

Я создал свой проект на основе проекта Spring.net Nhibnernate Northwind. Я также использую отображения на основе свободного кода, как предложено на этой странице http://blog.bennymichielsen.be/2009/01/04/using-fluent-nhibernate-in-spring-net.

Когда я применяю tx: атрибут-управляемый к моему весеннему контекстному XML-файлу, это нарушает работу приложения. LocalSessionFactoryObject не внедряется в мои DAO. Я попытался вытащить SessionFactory вручную из контекста, приложение работает, но транзакции не откатываются.

Если я удаляю атрибут tx: driven-атрибут , приложение работает, но, конечно, транзакции не откатываются. Журналы не показывают никаких ошибок. Поскольку приложение работает без атрибута, я предполагаю, что большая часть моей конфигурации должна быть в порядке.

Кто-нибудь успешно использовал сочетание Fluent, Nhibernate и Spring.net с транзакциями?

При необходимости могу предоставить более подробную информацию о моей настройке.

Ответы [ 2 ]

1 голос
/ 29 ноября 2010

Я понял это сам.В случае, если у кого-то еще возникают проблемы с транзакциями или какими-либо дополнительными функциями, связанными с AOP, убедитесь, что вы программируете с использованием интерфейсов, а не конкретных классов.Как-то мне не хватало этого.Если вы используете конкретные классы, ваш код не сможет использовать специальные прокси, созданные Spring, и такие функции, как управление TX, будут недоступны.

0 голосов
/ 18 июня 2018

@Ketan.

Если ваши доменные сущности равны таблицам базы данных, вы можете использовать Automapping внутри проекта Nhibernate Fluent ... это классы с автоматическим отображением ... простые в использовании. Проверьте это: https://github.com/FluentNHibernate/fluent-nhibernate/wiki/Auto-mapping

...