1

我遇到一个问题,当我在没有 Spring 的情况下使用 hibernate 时,我总是在 hibernate.cfg.xml 中编写以下配置:

<property name="current_session_context_class">thread</property>

这将seesion绑定到线程。但是当我将hibernate与Spring一起使用时,我不知道如何实现相同的配置,我也在applicationContext.xml中编写了它,但它不起作用。抛出异常:

org.hibernate.HibernateException: No Hibernate Session bound to thread,并且配置不允许在这里创建非事务性会话

其实我只是想将session绑定到线程,然后我可以使用sessionfactory的getcurrentSession方法,有没有人和我遇到同样的问题,如何解决。非常感谢

4

1 回答 1

0

尝试@Transactional在使用休眠会话的方法上添加注释。

看来您的方法需要交易。


有很多方法可以配置在 Spring 中使用事务。

下面是其中之一。

只是一个片段,因此您应该以自己的方式使用此代码。

<tx:annotation-driven/>

<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"
        p:sessionFactory-ref="sessionFactory" />

有关更多信息,请参阅SpringMVC 3.2 hibernate 文档

于 2013-04-10T03:02:29.067 回答