Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将多个数据源注入单个EntityManagerFactory?_Java_Jpa - Fatal编程技术网

Java 将多个数据源注入单个EntityManagerFactory?

Java 将多个数据源注入单个EntityManagerFactory?,java,jpa,Java,Jpa,我试图使用innerjoin query+JPA nativesql从同一数据库服务器中两个不同模式(逻辑数据库)的两个不同表中获取数据。如何将多个数据源注入同一实体管理器 我的配置文件如下所示 <bean id="userDataSource" class="org.jdbcdslog.DataSourceProxy"> <description>Data source for User database</description> <

我试图使用innerjoin query+JPA nativesql从同一数据库服务器中两个不同模式(逻辑数据库)的两个不同表中获取数据。如何将多个数据源注入同一实体管理器

我的配置文件如下所示

<bean id="userDataSource" class="org.jdbcdslog.DataSourceProxy">
    <description>Data source for User database</description>
    <property name="targetDSDirect">
        <bean class="org.springframework.jndi.JndiObjectFactoryBean">
            <property name="jndiName" value="jdbc/cUser" />
            <property name="resourceRef" value="true" />
        </bean>
    </property>
</bean>

<bean id="masterDataSource" class="org.jdbcdslog.DataSourceProxy">
    <description>Data source for User database</description>
    <property name="targetDSDirect">
        <bean class="org.springframework.jndi.JndiObjectFactoryBean">
            <property name="jndiName" value="jdbc/Master" />
            <property name="resourceRef" value="true" />
        </bean>
    </property>
</bean>

<bean id="entitymanager" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="persistenceXmlLocation"
              value="classpath:com/jpa_persistence.xml" />
    <property name= "persistenceUnitName" value= "CP"/>
    <property name="dataSource" ref="userDataSource" />   
    <property name="jpaVendorAdapter" ref="jpaVendorAdapter" />
    <property name="jpaPropertyMap">
        <map>
            <entry key="eclipselink.weaving" value="false"/>
        </map>
    </property>  
</bean>

用户数据库的数据源
用户数据库的数据源

我所知道的大多数数据库引擎都不需要这些邪恶的双重数据源技巧,您只需在同一用户上授予对这两个模式的读(或写)访问权限即可

这样,用户将可以访问这两个模式,并能够跨查询

最后,使用
实体
选项定义要使用的模式


@实体
@表(name=“author”,schema=“bookstore”)
公共类作者{…}

同一数据存储的不同模式是(可以是)同一数据源。。。i、 e您只需要一个数据源@我不明白你为什么发送这个xml