2

我有问题:

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

在测试我的项目时。

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

  • SessionFactory 定义

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

  • <tx:annotation-driven transaction-manager="transactionManager"/>- 开启交易的注释

我用以下注释注释了我的测试:

@测试

@Transactional

并继承 AbstractAnnotationAwareTransactionalTests

=> 我得到了这个错误:No Hibernate Session bound to thread,并且配置不允许在这里创建非事务性会话

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

在我打电话之前进行测试

sessionFactory.getCurrentSession().save(myObject);

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

提前谢谢,

斯蒂克

4

2 回答 2

0

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

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

于 2012-07-24T08:57:27.410 回答
0

在我的情况下base-package,错过了。一个喜欢:

<context:component-scan base-package="com.companyname" />
于 2015-06-23T13:14:06.163 回答