What is the use of session-factory name property in hibernate-configuration file
Assume that, you must connect to two different databases in your project, so you've two data sources and two session factories. So their names help you to manage them (session factories) easily.
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;
//...
}
when we have to connect multiple database then we have to create Multiple datasource for that we have create Multiple session factories
@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;
}
You can reference session factory by name,especially if you have multiple configuration files, for example:
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"/>