2010-11-28 6 views
1

Ich stehe vor einem seltsamen Problem mit Fluent, NHibernate und Spring.net. Mein Projekt ist ein ASP.NET MVC 2.0 (.net 4.0) Projekt.Fließende Mappings und Spring .NET-Transaktionen arbeiten nicht zusammen

Ich habe mein Projekt basierend auf Spring.net Nhibnernate Northwind Projekt erstellt. Ich verwende auch Fluent-Code-basierte Zuordnungen wie auf dieser Seite http://blog.bennymichielsen.be/2009/01/04/using-fluent-nhibernate-in-spring-net vorgeschlagen.

Wenn ich tx: attribut-driven auf meine Spring Kontext XML-Datei anwenden, bricht es die Anwendung. Das LocalSessionFactoryObject wird nicht in meine DAOs eingefügt. Ich habe versucht, die SessionFactory manuell aus dem Kontext zu ziehen, die App funktioniert, aber die Transaktionen werden nicht zurückgesetzt.

Wenn ich das tx: attribut-driven Attribut entfernen, funktioniert die App, aber natürlich sind die Transaktionen nicht zurückgesetzt. Die Protokolle zeigen keine Fehler. Da die App ohne das Attribut arbeitet, vermute ich, dass die meisten meiner Konfiguration in Ordnung sein sollte.

Hat jemand eine Kombination von Fluent, Nhibernate und Spring.net erfolgreich mit Transaktionen verwendet?

Ich kann bei Bedarf weitere Details zu meinem Setup bereitstellen.

Antwort

1

Ich habe es selbst herausgefunden. Falls jemand anderes Probleme mit Transaktionen oder mit von AOP bereitgestellten Funktionen im Frühjahr hat, stellen Sie bitte sicher, dass Sie mit Interfaces und nicht mit konkreten Klassen programmieren. Irgendwie habe ich das vermisst. Wenn Sie konkrete Klassen verwenden, kann Ihr Code die von Spring erstellten speziellen Proxys nicht verwenden und die Funktionen wie die TX-Verwaltung sind nicht verfügbar.