Nhibernate 为什么在使用NHibernte+;Spring.Net

Nhibernate 为什么在使用NHibernte+;Spring.Net,nhibernate,nunit,spring.net,sqlconnection,Nhibernate,Nunit,Spring.net,Sqlconnection,我编写了一个扩展Spring.Net的AbstractTransactionalDbProviderSpringContextTests类的测试用例,并尝试这样做 Step.1 MyHibernateDao.Find(id) Step.2 Use SqlConnection API to insert some record into database. 步骤1或步骤2都可以成功运行,但如果我将它们放在一起,步骤2将永远挂起(直到超时) 如果我添加以下语句: Step.1 MyHibernat

我编写了一个扩展Spring.Net的AbstractTransactionalDbProviderSpringContextTests类的测试用例,并尝试这样做

Step.1 MyHibernateDao.Find(id)
Step.2 Use SqlConnection API to insert some record into database.
步骤1或步骤2都可以成功运行,但如果我将它们放在一起,步骤2将永远挂起(直到超时)

如果我添加以下语句:

Step.1 MyHibernateDao.Find(id) //My Find method does not have [Transaction] annotation.
SessionFactory.GetCurrentSession().Flush()
SessionFactory.GetCurrentSession().Close()
Step.2 Use SqlConnection API to insert some record into database.
步骤1和步骤2都可以成功运行,当然,由于会话已经关闭,拆卸将失败

我想知道为什么测试挂在第2步?没有理由一个连接需要等待另一个连接返回,或者需要等待表锁或其他什么,它只是读取

我很困惑,知道吗


提前感谢。

您使用的是Spring.NET的事务管理还是NHibernate的?您可能需要检查您的会话工厂配置。

您可以发布导致挂起的测试用例中的实际(完整)代码吗?如果没有更多的信息,你不可能暗示你可能做错了什么。