Springのドキュメントでは、HibernateTemplate を完全に回避し、代わりに Hibernate API を直接使用することを推奨しています。
注: Hibernate 3.0.1 の時点では、トランザクション Hibernate アクセス コードもプレーンな Hibernate スタイルでコーディングできます。したがって、新しく開始されたプロジェクトの場合は、代わりに、SessionFactory.getCurrentSession() に基づいて、データ アクセス オブジェクトをコーディングする標準の Hibernate3 スタイルを採用することを検討してください。
また、@Transactional
アノテーションは常にサービス層のメソッドに付ける必要があります。これは、トランザクションを区別するレイヤーです。
http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/htmlsingle/spring-framework-reference.html#orm-session-factory-setupを読んで、セッション ファクトリのセットアップ方法を理解してください. 完了したら、セッション ファクトリを DAO に挿入できます。
@Repository
public class MyDAO {
@Autowired
private SessionFactory sessionFactory;
...
}