2010-11-28 26 views
1

Je suis confronté à un problème étrange avec Fluent, NHibernate et Spring.net. Mon projet est un projet ASP.NET MVC 2.0 (.net 4.0).Les mappages fluides et les transactions Spring .NET ne fonctionnent pas ensemble

J'ai créé mon projet basé sur le projet Spring.net Nhibnernate Northwind. J'utilise également des mappages basés sur le code Fluent comme suggéré sur cette page http://blog.bennymichielsen.be/2009/01/04/using-fluent-nhibernate-in-spring-net.

Lorsque j'applique tx: piloté par attribut à mon fichier xml de contexte de printemps, il casse l'application. Le LocalSessionFactoryObject n'est pas injecté dans mes DAO. J'ai essayé de tirer le SessionFactory manuellement du contexte, l'application fonctionne mais les transactions ne sont pas annulées.

Si je supprime l'attribut tx: attribut piloté par attribut, l'application fonctionne mais, bien sûr, les transactions ne sont pas annulées. Les journaux ne montrent aucune erreur. Comme l'application fonctionne sans attribut, je suppose que la plupart de ma configuration devrait être ok.

Est-ce que quelqu'un a utilisé une combinaison de Fluent, Nhibernate et Spring.net avec succès avec des transactions?

Je peux fournir plus de détails sur ma configuration si nécessaire.

Répondre

1

Je l'ai compris moi-même. Dans le cas où quelqu'un d'autre a des problèmes avec des Transactions ou des fonctionnalités fournies par le ressort liés à AOP, assurez-vous que vous êtes en train de programmer par rapport aux Interfaces et non pas par des classes concrètes. D'une manière ou d'une autre, j'avais manqué ça. Si vous utilisez des classes concrètes, votre code ne pourra pas utiliser les proxies spéciaux créés par Spring et les fonctionnalités telles que la gestion TX ne seront pas disponibles.