【问题标题】:Spring DB support best practicesSpring DB 支持最佳实践
【发布时间】:2011-11-21 12:59:55
【问题描述】:
我正在刷新我的 Spring 知识,阅读 spring 3.1 的参考文档。上次我读到关于 spring 的最佳实践设置为 JdbcDaoSupport 和 HibernateDaoSupport,现在甚至没有提到它们。
另外我的印象是HibernateTemplete 不再是可取的,而是我们只是在DAO 中注入SessionFactory。所以我的问题是:将 Spring 与 JDBC/Hibernate 结合使用的最佳实践是什么。
【问题讨论】:
标签:
hibernate
spring
jdbc
【解决方案1】:
HibernateDaoSupport 和 HibernateTemplete 用于提供将 Hibernate 2 的检查异常转换为 Spring 的非检查异常层次结构的工具。此外,HibernateTemplete 提供了比原始 Hibernate Session 接口更丰富的 API。
现在可以使用@Repository 注释和透明的异常转换来完成异常转换,这可能是因为 Hibernate 3 使用运行时异常。此外,Session 接口比以前更丰富,尽管它仍然比HibernateTemplate 提供的便利方法的数量少。
简而言之,这些支持类不再像以前那么有用了,现在在不参考 Spring API 的情况下编写 Spring DAO 很容易。但是,它们仍然提供了一些额外的便利,因此您可以选择继续使用它们。
不过,没有正确或错误的方法。