【发布时间】:2011-07-05 08:20:25
【问题描述】:
我在 Spring 3.0.5 上遇到了事务问题。在我的情况下,我得到所谓的异常“没有绑定到线程的休眠会话,并且配置不允许在这里创建非事务性会话”......到目前为止,我已经尝试了一切。我可以在我的日志中看到事务服务被检测到并注册为 Spring bean,我还可以在日志中看到它们被代理并与底层 Spring 事务拦截器相关联。 (建议)当我运行我的 Spring MVC 应用程序时,我的控制器将调用该服务...... :-( 但不会触发事务拦截器。(??) 我希望我的 Spring 服务代理打开一个会话并启动一个在调用我的目标服务方法之前进行交易。由于这没有发生,所以我得到了上述异常。我在这个问题上已经差不多两天了。尝试了我在互联网上找到的所有东西......但徒劳无功。
我有分层架构:表示(springmvc)、服务(事务注释)、数据访问(Spring/Hibernate 经典会话工厂)。我的模型对象用 jpa (javax.persistence.*) 注释。我的 spring 上下文配置文件在 appContext.xml、appContext-service.xml 和 appContext-dao.xml 中分开。我在 appContext-dao.xml 中定义了我的 Spring LocalSessionFactoryBean、Datasource 和 TransactionManager (HibernateTransactionManager)。我已将我的服务实现所在的 appContext-service.xml 放入其中。在我包含的所有配置文件中,并通过 Controller、Service 和 Repository 注释检测我的 bean。
感谢任何形式的帮助。
【问题讨论】:
-
你有没有在 spring 中将事务管理器注入到 tx:annotation 中。像这样
标签: java hibernate spring transactions spring-aop