J'ai un Hibernate SessionFactoryBean configuré dans mon applicationContext qui a déjà une source de données réelle en tant que propriété. Mais je voudrais utiliser une autre source de données locale/fictive dans ma classe de test en remplaçant la source de données qui a déjà été injectée dans la sessionfactory.Substitution de la source de données d'une sessionfactory hibernate dans les cas de test
La définition du bean dans le contexte de l'application principale est comme ceci.
<bean id="SessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"
abstract="false" scope="singleton" lazy-init="default" autowire="default">
<property name="dataSource" ref="pcfDataSource"/>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">$`db.hibernate.dialect} </prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.current_session_context_class">thread</prop>
<prop key="hibernate.cache.use_second_level_cache">true</prop>
<prop key="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory</prop>
</props>
</property>
</bean>
J'ai une source de données locale comme dans mon cas de test:
template = InitializeDataSource.getInitializedDataSource();
DataSource dataSource = template.getDataSource;
J'ai besoin de passer outre la source de données injecté avec celui dans le fond
Vous pouvez regarder à l'aide des profils java. –