Fluent映射和Spring .NET事务无法协同工作

时间:2010-11-28 03:41:10

标签: nhibernate transactions spring.net fluent

我在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上建议使用基于Fluent代码的映射。

当我将 tx:属性驱动应用于我的spring上下文xml文件时,它会破坏应用程序。 LocalSessionFactoryObject未在我的DAO中注入。我尝试从上下文手动拉取SessionFactory,应用程序工作,但事务不回滚。

如果我删除 tx:属性驱动属性,该应用程序可以运行,但当然不会回滚事务。日志不显示任何错误。由于应用程序没有属性,我猜我的大部分配置都应该没问题。

有没有人成功使用Fluent,Nhibernate和Spring.net与Transactions交换?

如有必要,我可以提供有关我的设置的更多详细信息。

2 个答案:

答案 0 :(得分:1)

我自己想通了。如果其他人遇到交易问题或任何弹簧提供的与AOP相关的功能,请确保您是针对接口编程而不是具体类。不知怎的,我错过了这个。如果您使用具体的类,您的代码将无法使用Spring创建的特殊代理,并且TX管理等功能将无法使用。

答案 1 :(得分:0)

@Ketan。

如果你的域实体等于数据库表,你可以使用Nhibernate Fluent项目中的Automapping ...这是自动化的类......易于使用。看看这个:https://github.com/FluentNHibernate/fluent-nhibernate/wiki/Auto-mapping