【问题标题】:Why SessionFactory is said to be a client of ConnectionProvider为什么说SessionFactory是ConnectionProvider的客户端
【发布时间】:2014-08-04 18:52:54
【问题描述】:
根据Hibernate Doc,它提到SessionFactory是
org.hibernate.connection.ConnectionProvider 的客户端。
为什么说SessionFactory是ConnectionProvider的客户,请帮我理解一下。
【问题讨论】:
标签:
java
hibernate
jpa
orm
connection
【解决方案1】:
Hibernate 抽象了连接获取机制,意味着你可以使用:
- 数据源
- 驱动程序
- C3P0 休眠属性
- 甚至是您自己为 Hibernate 提供数据库连接的机制
所以 ConnectionProvider 扮演了一个抽象连接工厂的角色。 SessionFactory 从一开始就需要连接提供者,以获取数据库元数据或生成 DDL (hbmddl),因此使 SessionFactory 成为当前 ConnectionProvider 的客户端。