休眠配置文件中会话工厂名称 属性 的用途是什么

What is the use of session-factory name property in hibernate-configuration file

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

hibernate-configuration can have only one session-factory and one or zero security tags

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

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

所以有人告诉我

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

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

您可以reference session factory by name,尤其是如果您有多个配置文件,例如:

change the names inside your cfg.xml file

<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"/>

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

Multiple datasource, Multiple session factories

Sample: inject two session factories from two independent data sources.

@Component
public class TestConfig {

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

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

//...

}

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

@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;

}