-
HibernateTemplate和 session
-
Spring 的 HibernateTemplate 可以管理会话和事务, 简化 DAO 实现. 但使用 HibernateTemplate 意味着DAO 必须依赖于 Spring 的 API
-
代替 HibernateTemplate 的另一种办法是使用 Hibernate 的上下文 Session 对象.
-
Hibernate 上下文 Session 对象和 Spring 的事务管理合作的很好, 但此时需保证所有的DAO 方法都支持事务
注意此时不需在 beans.xml 文件中配置, 因为 Spring 此时已经开始事务, 所以已经在 ThreadLocal 对象中绑定了 Session 对象
-
为什么Hibernate4中不再提供HibernateTemplate模板
由上文的内容可以看出 HibernateTemplate这个模板使得 DAO 层依赖于Spring的API,违反了Spring 非侵入性的原则
由于hibernate4已经完全可以实现事务了 与spring3.1中的hibernatedao,hibernateTemplete等有冲突,所以spring3.1里已经不提供hibernatedaosupport,hibernateTemplete了,只能用hibernate原始的方式用session