2015-10-22 4 views
1

Я новичок в hibernate, и я пытаюсь подключиться к нескольким DB. Я знаю, что мы можем создать новый файл CFG отдельно для каждой БД, а затем создать фабрику это какhibernate-configuration session-factory name

factory1 = new Configuration().configure(cfg1.xml).buildSessionFactory(); 
factory2 = new Configuration().configure(cfg2.xml).buildSessionFactory(); 

Но хотелось бы знать, что это значит иметь имя, как имя сеанса завода = «SESS1» в конфигурации hibernate, и могу ли я использовать это для определения нескольких сеансов DB вместо определения в новом файле cfg. пожалуйста, дай мне знать.

ответ

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

Смежные вопросы