【问题标题】:What is the use of session-factory name property in hibernate-configuration file休眠配置文件中会话工厂名称属性的用途是什么
【发布时间】:2018-05-06 07:08:42
【问题描述】:

在 hibernate-cfg.xml 文件中,根据我的理解

hibernate-configuration 只能有一个 session-factory 和一个或零个安全标签

如果我们配置多个会话工厂,那么我们应该得到错误

"The content of element type "hibernate-configuration" must match "(session-factory,security?)

谁告诉我

  1. hibernate.cfg.xml文件中session-factory标签中的name属性有什么用

    <session-factory name="">
    
  2. 我们可以在什么场景下使用它?

【问题讨论】:

  • 你有多个数据库要连接到同一个应用程序吗?

标签: java hibernate nhibernate-configuration


【解决方案1】:

假设您必须在项目中连接到两个不同的数据库,因此您有两个数据源和两个会话工厂。因此它们的名称可以帮助您轻松管理它们(会话工厂)。

Multiple datasource, Multiple session factories

示例:从两个独立数据注入两个会话工厂 来源。

@Component
public class TestConfig {

@Autowired
@Qualifier(value="firstSessionFactory")
private SessionFactory sessionFactory;

@Autowired
@Qualifier(value="secondSessionFactory")
private SessionFactory secondDBSessionFactory;

//...

}

【讨论】:

    【解决方案2】:

    你可以reference session factory by name,特别是如果你有多个配置文件,例如:

    更改 cfg.xml 文件中的名称

    <bean id="transactionManager1" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory1"/>
        <!-- ... -->
    </bean>
    
    <bean id="transactionManager2" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory2"/>
    

    【讨论】:

      【解决方案3】:

      当我们必须连接多个数据库时,我们必须为我们创建多个会话工厂创建多个数据源

      @Component
      public class Config {
      
      @Autowired
      @Qualifier(value="FirstSessionFactory")
      private SessionFactory firstSessionDB;
      
      @Autowired
      @Qualifier(value="SecondSessionFactory")
      private SessionFactory secondSessionDB;
      // for the third database
      @Autowired
      @Qualifier(value="thirdSessionFactory")
      private SessionFactory thirdSessionDB;
      
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-08-22
        • 1970-01-01
        • 2013-10-21
        • 2011-02-01
        • 2015-03-18
        • 1970-01-01
        • 1970-01-01
        • 2016-01-27
        相关资源
        最近更新 更多