没有绑定到线程的Hibernate会话,并且配置不允许在此处创建非事务会话



我有问题:

没有绑定到线程的Hibernate会话,并且配置不允许在这里创建非事务性

在测试我的项目时。

我使用Spring 2.0.7(这是该项目中必须使用的)和Hibernate 3。我有

  • SessionFactory定义的

  • 事务管理器定义(注入会话工厂)

  • <tx:annotation-driven transaction-manager="transactionManager"/>-在上切换的事务注释

我用注释了我的测试

@测试

@交易

并继承了AbstractAnnotationSoftwareTransactionalTests

=>我得到了这个错误:没有绑定到线程的Hibernate会话,并且配置不允许在这里创建非事务会话

我能克服它的唯一方法是使用:TransactionStatus transaction = transactionManager.getTransaction(transactionDefinition);

在我呼叫之前的测试中

sessionFactory.getCurrentSession().save(myObject);

有什么建议吗?或者更好:它是如何工作的?为什么它不能创建事务会话?为什么没有绑定休眠会话?我读过一些关于它的文章,但我仍然不清楚。我想我尽了一切努力让它发挥作用,但显然这还不够。

Thx提前,

Stepik

我认为问题在于您从AbstractAnnotationwareTransactionalTests扩展了类。尝试删除继承(没有它应该可以工作)。或者尝试从AbstractTransactionalJUnit4SpringContextTests类扩展您的类。

你可以在这里看到类似的帖子。

在我的案例中,遗漏了一个base-package。一个类似:

<context:component-scan base-package="com.companyname" />

最新更新