Абстрактный источник данных маршрутизации с различными базами данных - PullRequest
0 голосов
/ 28 августа 2018

У нас есть приложение, в котором мы реализовали функцию источника данных абстрактной маршрутизации при работе с несколькими базами данных одного типа mysql (jdbc: mysql: //127.0.0.1: 3306 / test, jdbc: mysql: //127.0.0.1: 3306 / test2).

Теперь мы идем с другой базой данных, которая является DB2. поэтому я не смог найти никаких примеров для этого сценария, используя абстрактный источник данных маршрутизации.

Кто-нибудь может дать какие-нибудь указания?

Это мой кодовый блок:

Я определил 3 источника данных itemDataSource, custDataSource, orderDb2DataSource в dao.xml.

как настроить вторую фабрику сеанса для менеджера транзакций?

<bean id="dataSource" class="com.test.DatabaseRoutingDataSource">
        <property name="targetDataSources">
            <map key-type="com.test.dao.DatabaseType">
                <entry key="ITEM" value-ref="itemDataSource"/>
                <entry key="CUSTOMER" value-ref="custDataSource"/>
                <entry key="ORDER_DB2" value-ref="orderDb2DataSource"/>
            </map>
        </property>
        <property name="defaultTargetDataSource" ref="itemDataSource" />
    </bean>


    <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
        <property name="dataSource">
            <ref bean="dataSource" />
        </property>
        <property name="configLocation">
            <value>/WEB-INF/hibernate.cfg.xml</value>
        </property>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.MySqlDialect</prop>
                <prop key="hibernate.show_sql">true</prop>
            </props>
        </property>
    </bean>
    <!-- Added for DB2 Database -->
    <bean id="sessionFactoryDB2" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
        <property name="dataSource">
            <ref bean="dataSource" />
        </property>
        <property name="configLocation">
            <value>/WEB-INF/hibernate.db2.cfg.xml</value>
        </property>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.DB2Dialect</prop>
                <prop key="hibernate.show_sql">true</prop>
            </props>
        </property>
    </bean>
    <!-- Added for DB2 Database -->

    <bean id="transactionManager1"
         class="org.springframework.orm.hibernate4.HibernateTransactionManager">
            <property name="sessionFactory" ref="sessionFactory"/>
    </bean>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...