Spring-Hibernate en utilisant des multiples de la source de données/base de données
Je travaille sur une application web qui utilise Spring MVC 3 et Hibernate
Je veux utiliser 2 source de données MySql et Oracle bases de données pour mon application web,
J'ai lu beaucoup de tuto et de résolution de problème pour le "spring-hibernate multiples de la source de données/base de données"
par exemple :
et etc.
mais quand à chaque fois que je le lance, la config viens de lire ma première config de la base de données (MySql)
et de montrer cette erreur Table 'db_prod.ksei_lookup_holiday' doesn't exist
db.la prod est ma première base de données(MySql) et KSEI_LOOKUP_HOLIDAY est ma deuxième base de données (Oracle),
c'est mon spring.xml
<tx:annotation-driven transaction-manager="transactionManager"/>
<tx:annotation-driven transaction-manager="transactionManagerSOAAPP"/>
<context:annotation-config />
<context:component-scan base-package="prod.support" />
<!-- Database MySql, Desktop -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/db_prod" />
<property name="username" value="root" />
<property name="password" value="shikamaru" />
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration"></property>
<property name="dataSource" ref="dataSource"></property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
<property name="packagesToScan" value="prod.support.model.splatter" />
</bean>
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager"
p:sessionFactory-ref="sessionFactory">
</bean>
<!-- Database Oracle, Schema : SOAAPP -->
<bean id="dataSourceSOAAPP" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@localhost:1521:XE" />
<property name="username" value="splatter" />
<property name="password" value="shikamaru" />
</bean>
<bean id="sessionFactorySOAAPP"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration"></property>
<property name="dataSource" ref="dataSource"></property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
<property name="packagesToScan" value="prod.support.model.soaapp" />
</bean>
<bean id="transactionManagerSOAAPP"
class="org.springframework.orm.hibernate3.HibernateTransactionManager"
p:sessionFactory-ref="sessionFactorySOAAPP">
</bean>
c'est mon DAO mise en Œuvre, pour ma première base de données (MySql)
@Repository
@Qualifier(value="sessionFactory")
public class UserDaoImpl extends HibernateDaoSupport implements UserDao{
@Autowired
private UserDaoImpl(SessionFactory sessionFactory){
setSessionFactory(sessionFactory);
}
c'est mon DAO mise en Œuvre pour mon deuxième base de données (Oracle)
@Repository
@Qualifier(value="sessionFactorySOAAPP")
public class UpdateKSEIDaoImpl extends HibernateDaoSupport implements UpdateKSEIDao{
@Autowired
private UpdateKSEIDaoImpl(SessionFactory sessionFactorySOAAPP){
setSessionFactory(sessionFactorySOAAPP);
}
toute aide sera plaisir 🙂
OriginalL'auteur splatter_fadli | 2014-06-04
Vous devez vous connecter pour publier un commentaire.
Le problème, c'est que vous avez utilisé
<property name="dataSource" ref="dataSource"></property>
danssessionFactorySOAAPP
.Vous devriez avoir utilisé
<property name="dataSource" ref="dataSourceSOAAPP"></property>
OriginalL'auteur geoand
Si vous cochez la case "sessionFactorySOAAPP", puis le ci-dessous nom de la propriété doit être "dataSourceSOAAPP' pas 'dataSource'.
OriginalL'auteur Praveen Tyagi
ce mon fichier de configuration:
OriginalL'auteur Iman Namvar
@geoand est correct dans l'erreur, il a repéré. Autres que que le contexte xml semble correcte et fonctionne pour moi.
Cependant, pour moi, cela ne fonctionne que si @qualificatif est avec le @Autocâblés.
OriginalL'auteur Jake