0

私は 1 つのデータベースを使用するアプリケーションを持っています。今のところ、この data-access-config.xml を構成しています。

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd">
    <!-- Instructs Spring to perfrom declarative transaction management on annotated classes -->
    <tx:annotation-driven />
    <!-- Drives transactions using local JPA APIs -->
    <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
        <property name="entityManagerFactory" ref="entityManagerFactory" />
    </bean>
    <!-- Creates a EntityManagerFactory for use with the Hibernate JPA provider and a simple in-memory data source populated with test data -->
    <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="jpaVendorAdapter">
            <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
        </property>
    </bean>
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="org.postgresql.Driver" />
        <property name="url" value="jdbc:postgresql://localhost:5432/database1" />
        <property name="username" value="admin1" />
        <property name="password" value="some_pass" />
    </bean>
</beans>

接続は良好ですが、2 つ目のデータベース (同じサーバー内) を構成する必要があります。Hibernate + JPA + Springを使用しています

ありがとう!!!

4

2 に答える 2

1

このようなものはうまくいくはずです:

<bean id="emf" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="dataSource" ref="dataSource" />
    ...
</bean>

<bean id="emf1" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="dataSource" ref="dataSource1" />
    ...
</bean>

DAO で、使用

@PersistenceContext(unitName = "emf1")
private EntityManager em;

上記は、DAO にemf1インスタンスを使用するように指示します。

2 番目のエンティティ マネージャーの名前を、最初のエンティティ マネージャーとは別の名前にするのを忘れたのではないでしょうか?

于 2012-11-14T21:03:03.877 に答える
0

永続ユニットの管理に役立つ「永続ユニットマネージャー」を使用する必要がある場合があります。複数の持続性ユニットについては、Spring のドキュメントを参照してください。2 つのデータ ソース、1 つのエンティティ マネージャー ファクトリ、および 1 つの持続性ユニット マネージャーがあります。

エンティティ マネージャ ファクタには、(2 つのデータ ソースではなく) 永続ユニット マネージャへの参照があり、永続ユニット マネージャには 2 つのデータ ソースへの参照があります。

于 2012-11-15T20:31:19.077 に答える