【问题标题】:session-factory tag in hibernate configuration file?休眠配置文件中的会话工厂标签?
【发布时间】:2015-08-22 05:47:49
【问题描述】:

我是新的Hibernate 学习者。 我很困惑,为什么我们在休眠配置文件中使用标签session-factory ?

我们还在主类中使用它来为所有事务创建会话工厂对象。

【问题讨论】:

    标签: hibernate hibernate-mapping hibernate-criteria sessionfactory


    【解决方案1】:

    在 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 中找到有关它的更多详细信息。

    【讨论】:

    • 感谢您的回答。我知道要管理会话,我们使用会话工厂。但是为什么我们在主类中使用了两次 First 在配置文件 标签中 Second 在主类中,同时创建会话工厂对象。那么配置文件中这个标签有什么用呢?
    • @Nilay 看看我的编辑。
    • 非常感谢您的回答。
    • @Nilay 这个答案有帮助吗?如果是,请接受。
    【解决方案2】:

    在 Hibernate 中执行数据库操作我们需要与数据库的连接。要打开与数据库的连接,我们需要在 hibernate 中使用 session 对象,要获取 Session 对象,我们需要 Hibernate SessionFactory,它是我们获取会话和执行数据库操作的工厂类. Hibernate SessionFactory提供了三种获取Session对象的方法——getCurrentSession()、openSession()和openStatelessSession()。

    Hibernate SessionFactory getCurrentSession() 方法返回绑定到上下文的会话。但是为了让它工作,我们需要在hibernate配置文件中配置它。

    【讨论】:

    • 感谢您的回答。我知道要管理会话,我们使用会话工厂。但是为什么我们在主类中使用了两次 First 在配置文件 标签中 Second 在主类中,同时创建会话工厂对象。那么配置文件中这个标签有什么用呢?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-21
    • 2011-02-01
    • 2015-03-18
    • 1970-01-01
    • 1970-01-01
    • 2016-01-27
    • 1970-01-01
    相关资源
    最近更新 更多