1

問題に遭遇しました。Spring なしで休止状態を使用する場合、常に hibernate.cfg.xml に次の構成を記述します。

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

これはシードをスレッドにバインドします。しかし、Springと一緒にhibernateを使用する場合、同じ構成を実装する方法がわからず、applicationContext.xmlにも記述しますが、機能しません。例外をスローします:

org.hibernate.HibernateException: スレッドにバインドされた Hibernate セッションがありません。構成では、ここで非トランザクション セッションを作成することはできません

実際には、セッションをスレッドにバインドしたいだけで、sessionfactory の getcurrentSession メソッドを使用できます。

4

1 に答える 1

0

@Transactional休止状態セッションを使用するメソッドに注釈を追加してみてください。

メソッドにはトランザクションが必要なようです。


Spring でトランザクションを使用するための設定方法はたくさんあります。

以下はそのうちの1つです。

単なるスニペットなので、このコードを自分のやり方で使用する必要があります。

<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 に答える