我有问题:
没有绑定到线程的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" />