简体   繁体   English

多个连接+ JPA + Spring

[英]Multiple Connections + JPA + Spring

I have 2 DataSource connections and I am specifying which class each connection should use but I still get some exception: 我有2个DataSource连接,并且正在指定每个连接应使用哪个类,但仍然出现一些异常:

this is my applicationContext.xml 这是我的applicationContext.xml

    <context:component-scan base-package="com.example.video"/> 
    <context:annotation-config/>
    <tx:annotation-driven />  
    <jee:jndi-lookup id="VOD" jndi-name="java:comp/env/jdbc/VOD" />
    <jee:jndi-lookup id="SB" jndi-name="java:comp/env/jdbc/SB" />



     <bean id="entityManagerFactory"
        class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name="dataSource" ref="VOD" />
        <property name="packagesToScan" value="com.example.video" />
        <property name="persistenceProviderClass" value="org.hibernate.ejb.HibernatePersistence" />
        <property name="jpaProperties">
                <props>
                        <prop key="hibernate.hbm2ddl.auto">validate</prop>
                </props>
        </property>
    </bean>

    <bean id="transactionManager" 
        class="org.springframework.orm.jpa.JpaTransactionManager">
        <property name="entityManagerFactory" ref="entityManagerFactory"/>
    </bean> 


     <bean id="entityManagerFactorySB"
        class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name="dataSource" ref="SB" />
        <property name="packagesToScan" value="com.example.service" />
        <property name="persistenceProviderClass" value="org.hibernate.ejb.HibernatePersistence" />
        <property name="jpaProperties">
                <props>
                        <prop key="hibernate.hbm2ddl.auto">validate</prop>
                </props>
        </property>
    </bean>

    <bean id="transactionManagerSB" 
       class="org.springframework.orm.jpa.JpaTransactionManager">
            <property name="entityManagerFactory" ref="entityManagerFactorySB"/>
    </bean> 

    <jpa:repositories base-package="com.example.video"
                        entity-manager-factory-ref="entityManagerFactory" 
                        transaction-manager-ref="transactionManager"/>

    <jpa:repositories base-package="com.example.service"
                      entity-manager-factory-ref="entityManagerFactorySB" 
transaction-manager-ref="transactionManagerSB"/>

and here is my persistence.xml 这是我的persistence.xml

  <persistence-unit name="VOD" transaction-type="RESOURCE_LOCAL">

       <provider>org.hibernate.ejb.HibernatePersistence</provider>
       <class>com.example.video.model.Product</class>
                             .
                             .
       <class>com.example.video.model.Task</class>
       <exclude-unlisted-classes>true</exclude-unlisted-classes> 

       <properties>

            <property name="hibernate.dialect"  value="org.hibernate.dialect.Oracle10gDialect" />
            <property name="hibernate.show_sql" value="true" />
            <property name="hibernate.format_sql" value="true" />
            <property name="hibernate.transaction.factory_class" value="org.hibernate.transaction.JDBCTransactionFactory" /> 
            <property name="hibernate.hbm2ddl.auto" value="update" />
       </properties>

    </persistence-unit>
   <persistence-unit name="SB" transaction-type="RESOURCE_LOCAL">

       <provider>org.hibernate.ejb.HibernatePersistence</provider>
       <class>com.example.service.model.ChargingInfo</class>
       <exclude-unlisted-classes>true</exclude-unlisted-classes>

    </persistence-unit>
</persistence>

And this is the exception: Caused by: org.hibernate.HibernateException: Missing table: CHARGINGINFO 这是一个例外:原因:org.hibernate.HibernateException:缺少表:CHARGINGINFO

您是否已检查MergingPersistenceUnitManager http://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.misc.merging-persistence-units允许您将多个持久性提供程序组合为一个。

Found the problem, just had to remove the line from applicationContext.xml 找到了问题,只需要从applicationContext.xml中删除该行

< prop key="hibernate.hbm2ddl.auto">validate <prop key =“ hibernate.hbm2ddl.auto”>验证

from the bean declarations then it worked fine. 从bean的声明,然后它工作正常。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM