如果您想使用多个
DataSource在
Spring + JPA。
- 创建两个或更多的
PersistenceUnit
在persistence.xml
。 - 创建
EntityManagerFactory
每个PersistenceUnit
在spring-beans.xml
。
在您的DAO类中。
@PersistenceContext(unitName ="JPA_1")private EntityManager em_1;@PersistenceContext(unitName ="JPA_2")private EntityManager em_2;
Conig persistence.xml
<persistence-unit name="JPA_1" type="RESOURCE_LOCAL">....</persistence-unit><persistence-unit name="JPA_2" type="RESOURCE_LOCAL">....</persistence-unit>
配置:spring-beans.xml
<bean id="entityManagerFactory1" > <property name="persistenceUnitName" value="JPA_1"/> <property name="jpaVendorAdapter" ref="jpaVendorAdapter"/> <property name="jpaDialect"> <bean /> <--if it is necessary, replace with hibernate. </property> <property name="jpaPropertyMap"> <props> <prop key="eclipselink.weaving">false</prop> <--if it is necessary, replace with hibernate. </props> </property> <property name="loadTimeWeaver"> <bean > </bean> </property></bean><bean id="entityManagerFactory2" > <property name="persistenceUnitName" value="JPA_2"/> <property name="jpaVendorAdapter" ref="jpaVendorAdapter"/> <property name="jpaDialect"> <bean /> <--if it is necessary, replace with hibernate. </property> <property name="jpaPropertyMap"> <props> <prop key="eclipselink.weaving">false</prop> <--if it is necessary, replace with hibernate. </props> </property> <property name="loadTimeWeaver"> <bean > </bean> </property></bean><bean id="jpaVendorAdapter" > <--if it is necessary, replace with hibernate. <property name="databasePlatform" value="org.eclipse.persistence.platform.database.MySQLPlatform"/> <!--<property name="databasePlatform" value="org.eclipse.persistence.platform.database.OraclePlatform" />--> <property name="generateDdl" value="false"/> <property name="showSql" value="true"/></bean>



