在Spring下如何适当地完成Hibernate会话的“生命周期”?
该SessionFactory由Spring自动创建并从Glassfish的连接池利用其数据库连接。目前,我正在通过进行Hibernate会话SessionFactory.getCurrentSession()。然后,我开始交易,完成工作,然后commit()或rollback()结束。我需要做任何其他操作,如disconnect(),close(),flush()在任何时间或任何其他人,以便连接将被适当地返回到游泳池或就是一切已经自动春天呢?
SessionFactory
SessionFactory.getCurrentSession()
commit()
rollback()
disconnect()
close()
flush()
有了很多这样的方法,这让我眼前一亮,无法理解应该何时执行操作,也许有人可以指出正确的方向?
由于SessionFactory由Spring自动创建,因此Spring框架将负责关闭连接。查看Spring资源管理
如果要检查。如果您正在为应用程序使用日志记录,则可以检查日志。就像:
(主)INFO [AnnotationSessionFactoryBean]关闭Hibernate SessionFactory
我从这个链接得到以下几行
这里的主要约定是创建Session实例。通常,应用程序具有单个SessionFactory实例,并且服务于客户端请求的线程从该工厂获取Session实例。SessionFactory的内部状态是不可变的。创建后,便会设置此内部状态。此内部状态包括有关对象/关系映射的所有元数据。实现者必须是线程安全的。