【发布时间】:2015-08-22 05:47:49
【问题描述】:
我是新的Hibernate 学习者。
我很困惑,为什么我们在休眠配置文件中使用标签session-factory
?
我们还在主类中使用它来为所有事务创建会话工厂对象。
【问题讨论】:
标签: hibernate hibernate-mapping hibernate-criteria sessionfactory
我是新的Hibernate 学习者。
我很困惑,为什么我们在休眠配置文件中使用标签session-factory
?
我们还在主类中使用它来为所有事务创建会话工厂对象。
【问题讨论】:
标签: hibernate hibernate-mapping hibernate-criteria sessionfactory
在 Hibernate 中,SessionFactory 用于管理与数据库的会话和事务,您可以在 documentation 中看到:
这里的主要合同是创建 Session 实例。通常一个应用程序有一个 SessionFactory 实例并且服务于客户端请求的线程从这个工厂获取 Session 实例。
SessionFactory 的内部状态是不可变的。一旦是 创建了这个内部状态设置。这种内部状态包括所有 关于对象/关系映射的元数据。
XML 配置文件中的<session factory> 标签用于配置和初始化 hibernate 的会话工厂设置,例如Dialect 类和连接Driver 类属性,您可以在 Hibernate - Configuration 看到 XML 配置文件必须符合 Hibernate 3 配置 DTD。
虽然我们在类中使用的sessionFactory 实例用于管理每个数据库事务的会话,但您可以在jBossDeveloper's Sessions and transactions tutorial 中找到有关它的更多详细信息。
【讨论】:
在 Hibernate 中执行数据库操作我们需要与数据库的连接。要打开与数据库的连接,我们需要在 hibernate 中使用 session 对象,要获取 Session 对象,我们需要 Hibernate SessionFactory,它是我们获取会话和执行数据库操作的工厂类. Hibernate SessionFactory提供了三种获取Session对象的方法——getCurrentSession()、openSession()和openStatelessSession()。
Hibernate SessionFactory getCurrentSession() 方法返回绑定到上下文的会话。但是为了让它工作,我们需要在hibernate配置文件中配置它。
【讨论】: