Spring 3 で Hibernate 4 への移行に取り組んでいます。つまり、Spring の HibernateTemplate を使用できなくなりました。コードのリファクタリングは簡単でした (コールバックをセッションが使用される sessionFactory.getCurrentSession() に置き換える) が、単体テストで問題が発生しています。特に、DAO の完全なライブ統合テストが必要です。@Transactional は使用しません。
ただし、HibernateTemplate は、セッションが開いていない場合にセッションを開く手段を提供しなくなったため、「現在のスレッドのセッションが見つかりません」というメッセージが表示されます。セッションが開いていない場合、 sessionFactory.getCurrentSession() はセッションを開かないため、テストを実行すると。
テストで @Transactional を使用することに移行せずに、HibernateTemplate が提供していたものを複製するためにこれを回避する方法はありますか? 可能であるように思えますが、テストクラスに @Transactional で注釈を付けた場合にのみテストを機能させることができます (セッションを開くため)。