hibernate配置会话 - 工厂名称

时间:2015-10-22 16:30:34

标签: hibernate

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

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

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

1 个答案:

答案 0 :(得分: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