我最近在Hibernate 3.5和Spring 3上做过一些工作,我对Hibernate很新,并且认为HibernateDaoSupport
Spring中的类使我的域类很好用,也很容易使用Hibernate.
但是,在搜索一个不相关的问题时,我看到有人提到这HibernateDaoSupport
不是使用Spring和Hibernate的最佳方法.任何人都可以阐明:
axt*_*avt 91
建议不要使用HibernateDaoSupport
/,HibernateTemplate
因为它会不必要地将您的代码绑定到Spring类.
对于旧版本的Hibernate,使用这些类是不可避免的,以便集成对Spring管理的事务的支持.
但是,由于Hibernate 3.0.1你不再需要它 - 你可以在使用Spring管理的事务时针对普通的Hibernate API编写代码.您只需配置Spring事务支持,在需要使用会话时注入SessionFactory
并调用getCurrentSession()
它.
另一个好处HibernateTemplate
是异常翻译.没有HibernateTemplate
相同的功能可以通过使用@Repository
注释来实现,如Gareth Davis的回答所示.
也可以看看:
Gar*_*vis 18
对于我的钱,使用没有任何问题HibernateDaoSupport
.它在3.0版本中不被弃用.
您能否提供您找到的问题编号,也许它们可以引用一个非常具体的用例.
另一种方法是使用@Repository
注释.这将连接相同的异常转换(这是一个很大的好处HibernateTemplate
),并允许您使用自己的超类或只是为了避免扩展第三方框架类.
@Repository
public class YourFooDao {
@Resource
private SessionFactory sessionFactory;
private Foo get(long id){
return (Foo) sessionFactory.getCurrentSession().get(id);
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
57766 次 |
最近记录: |