【问题标题】:hibernate-configuration session-factory name休眠配置会话工厂名称
【发布时间】:2015-10-22 16:30:33
【问题描述】:

我是休眠新手,我正在尝试连接到多个数据库。我知道我们可以为每个数据库单独创建一个新的 cfg 文件,然后像

一样创建它的工厂
factory1 = new Configuration().configure(cfg1.xml).buildSessionFactory();
factory2 = new Configuration().configure(cfg2.xml).buildSessionFactory();

但是想知道在休眠配置中具有像 session-factory name="SESS1" 这样的名称是什么意思,我可以使用它在那里定义多个数据库会话而不是在新的 cfg 文件中定义。请告诉我。

【问题讨论】:

    标签: hibernate


    【解决方案1】:

    如果你有另一个数据库,你应该在 hibernate.hbm.xml 中定义相关的配置来创建一个 也为该数据库单独的 SessionFactory。

    是的,可以这样做,您需要做的是更改 cfg.xml 文件中的名称。

    例如:

    <bean id="dataSource1" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <!-- ... -->
    </bean>
    
    <bean id="sessionFactory1" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
        <property name="dataSource" ref="dataSource1"/>
        <!-- ... -->
    </bean>
    
    <bean id="transactionManager1" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory1"/>
        <!-- ... -->
    </bean>
    
    
    <bean id="dataSource2" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <!-- ... -->
    </bean>
    
    <bean id="sessionFactory2" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
        <property name="dataSource" ref="dataSource2"/>
        <!-- ... -->
    </bean>
    
    <bean id="transactionManager2" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory2"/>
        <!-- ... -->
    </bean>
    

    您也可以在此处查看此主题:Hibernate using multiple databases

    【讨论】:

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