【发布时间】:2015-01-15 18:21:31
【问题描述】:
我有 2 个 DataSource 连接,我正在指定每个连接应该使用哪个类,但我仍然遇到一些异常:
这是我的 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"/>
这是我的 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>
这是个例外: 引起:org.hibernate.HibernateException:缺少表:CHARGINGINFO
【问题讨论】:
-
你的数据库中有CHARGINGINFO表吗?
-
是的,数据库没问题。
标签: java spring hibernate spring-mvc jpa