一尘不染

Spring + Hibernate会话生命周期

hibernate

在Spring下如何适当地完成Hibernate会话的“生命周期”?

SessionFactory由Spring自动创建并从Glassfish的连接池利用其数据库连接。目前,我正在通过进行Hibernate会话SessionFactory.getCurrentSession()。然后,我开始交易,完成工作,然后commit()rollback()结束。我需要做任何其他操作,如disconnect()close()flush()在任何时间或任何其他人,以便连接将被适当地返回到游泳池或就是一切已经自动春天呢?

有了很多这样的方法,这让我眼前一亮,无法理解应该何时执行操作,也许有人可以指出正确的方向?


阅读 250

收藏
2020-06-20

共1个答案

一尘不染

由于SessionFactory由Spring自动创建,因此Spring框架将负责关闭连接。查看Spring资源管理

如果要检查。如果您正在为应用程序使用日志记录,则可以检查日志。就像:

(主)INFO [AnnotationSessionFactoryBean]关闭Hibernate SessionFactory

我从这个链接得到以下几行

这里的主要约定是创建Session实例。通常,应用程序具有单个SessionFactory实例,并且服务于客户端请求的线程从该工厂获取Session实例。SessionFactory的内部状态是不可变的。创建后,便会设置此内部状态。此内部状态包括有关对象/关系映射的所有元数据。实现者必须是线程安全的。

2020-06-20