Il y a eu plusieurs discussions sur ce sujet sur le site, mais j'utilise des annotations partout pour créer sessionFactory.Plusieurs bases de données utilisant Hibernate dans le style d'annotation
private SessionFactory sessionFactory;
@Autowired
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
Voici comment hibernate.cfg.xml ressemble
<hibernate-configuration>
<session-factory>
<property name="hibernate.bytecode.use_reflection_optimizer">false</property>
<property name="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.password">xxxxx</property>
<property name="hibernate.connection.url">xxxxx</property>
<property name="hibernate.connection.username">XXXX</property>
<property name="hibernate.connection.characterEncoding">utf-8</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
<property name="hibernate.format_sql">true</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.use_sql_comments">true</property>
<mapping class="XXXX" />
</session-factory>
</hibernate-configuration>
C'est applicationContext.xml
<!-- add tomcat datasource instance to springs context -->
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/XXXXDS" />
<property name="resourceRef" value="true" />
</bean>
Comment puis-je obtenir l'intégration de multiples DB dans ce cas. Une solution que je suis tombé sur était de créer plusieurs hibernate.cfg.xml et de créer une autre usine de session pour cela.
Mais j'ai deux doutes, 1) Comment est-ce que j'indique dans autowiring, quel sessionFactory choisir, 2) je devrais dupliquer beaucoup d'information à travers hibernate.xml, par exemple beans. Y a-t-il une approche plus propre pour ce problème?
Y a-t-il une raison pour laquelle vous ne voulez pas/ne pouvez pas utiliser l'injection de bean pour les DAO? Cela résoudrait votre problème. – bvulaj
Désolé, mais pourriez-vous s'il vous plaît être plus précis, donnez-moi quelques exemples, des liens pour cette approche. Je m'habitue à Spring + Hibernate donc c'est une situation unique pour moi. –
Réponse postée ci-dessous. – bvulaj