当前位置: 首页 > 面试题库 >

为什么不推荐使用HibernateTemplate?

柴岳
2023-03-14
问题内容

我曾经在hibernate 3中使用getHibernateTemplate(),现在我转向了Hibernate 4,在这里我找不到以下类:

org.springframework.orm.hibernate4.support.HibernateDaoSupport;

有人可以解释我为什么吗?在hibernate4中,我现在需要执行所有任务,例如提交,关闭,刷新由getHibernateTemplate()方法自动管理的事务?


问题答案:

因为它的主要目的是使Hibernate会话绑定到当前的Spring事务(如果SessionFactory.getCurrentSession()不存在)。由于它已经存在(并且很长一段时间:即使在hibernate3软件包中也不鼓励使用HibenateTemplate),因此没有理由使用该特定于Spring的类,而不是使用SessionFactory.getCurrentSession()将会话绑定到当前Spring事务。

如果使用Spring,则应使用其声明式事务管理,这样可以避免打开,提交,关闭和刷新。这一切都是由Spring自动完成的:

@Autowired
private SessionFactory sessionFactory;

@Transactional
public void someMethod() {
    // get the session for the current transaction:
    Session session = sessionFactory.getCurrentSession();
    // do things with the session (queries, merges, persists, etc.)
}

在上面的示例中,将在方法调用之前启动事务(如果尚未启动)。Spring将为该事务创建一个会话,该会话将在事务提交之前自动刷新,该方法将在方法返回时由Spring自动完成。



 类似资料:
  • 问题内容: 我曾经在hibernate 3中使用getHibernateTemplate(),现在我转向了Hibernate 4,在这里我找不到以下类: 在这里我已经阅读过有关它的更多信息,不建议使用 http://forum.springsource.org/showthread.php?117227-Missing-Hibernate- Classes-Interfaces-in-spring

  • 问题内容: 众所周知,Java 中的接口已损坏。造成这种情况的原因很多,我将不再赘述。其他人已经做到了。这也是Java架构师本身的立场。 因此,我的问题是:为什么还不被弃用?如果核心Java团队已确定它已损坏,那么他们还必须考虑过时。他们反对这样做的原因是什么(在Java 8中仍不建议弃用)? 问题答案: 有一个错误在1997年提交给Java的错误数据库有关添加方法,所以将不再是无用的。它以“无法

  • 问题内容: 我正在将hibernate项目配置为使用第二级缓存提供程序,以便可以利用查询缓存。 我向ehcache添加了一个依赖项: 我认为我要使用的提供程序类是: 在eclipse中查看引用的库时,我在和上都看到了注释。是什么赋予了?我可以使用最新的替代供应商吗? 我正在使用hibernate版本3.4.0.GA,以防万一。 问题答案: 是什么赋予了?我可以使用最新的替代供应商吗? 不推荐使用它

  • 问题内容: HTML从早期开始就有框架,但是在最新版本中已弃用。许多浏览器(我曾尝试使用Internet Explorer)甚至无法正确显示框架。 为什么要这样做?镜框的缺点是什么? 问题答案: 雅各布·尼尔森(JakobNielsen)在1996年的专栏批评镜框。一些关键点: 框架会阻止用户正确标记页面。加载带有书签的框架集页面时,用户先前在框架内单击鼠标没有关系。仅保存外部URL,用户必须导航

  • 问题内容: 从Guava 10开始,已弃用,并且中没有对应的方法。 为什么要进行此更改?我需要与使用它的现有代码做什么? 问题答案: 我写这个问题的原因是,起初,我确实确实想知道为什么要这么做(因为我已有使用过的代码)。但是,反思的原因很明显,因此我决定将其发布在这里,以防其他人也使用并想知道同一件事。 简而言之,原因是从一开始就没有任何意义。因此,最初包含它本身就是一个错误,Guava开发人员正

  • 问题内容: (此问题不同于您为什么要实现finalize()?此问题与从Java平台弃用有关,另一个问题与在应用程序中是否应使用此机制有关。) 为什么在Java 9中不推荐使用该方法? 是的,它可能以错误的方式使用(例如,从垃圾收集中保存对象(虽然仅一次)或尝试关闭其中的某些本机资源(总比不完全关闭要好))以及许多其他方法可能会被错误地使用。 那么,是真的如此危险或绝对没有用,有必要将其逐出Jav