开发者社区> 问答> 正文

spring3.2.2+jpa整合 如何配置多个持久化单元?报错

 

 
 <!-- 配置持久化单元文件  -->
 <bean id="pum"
  class="org.springframework.orm.jpa.persistenceunit.DefaultPersistenceUnitManager">
  <property name="persistenceXmlLocations">
   <!-- 可以配置多个持久单元-->
   <list>
                   <!-- 持久单元名称 Test -->
       <value>classpath:config/common/persistences.xml</value>
          <!-- 持久单元名称 coldIce -->
        <value>classpath*:META-INF/persistence.xml</value>
   </list>
  
  </property>

  <!-- 单配置多个持久单元的时候可以配置多个数据库连接池  -->
  <!--  <entry key="remoteDataSource" value-ref="dataSource" />  -->
  <property name="dataSources">
  
   <map>
    <entry key="localDataSource" value-ref="dataSource" />
   
   </map>
  </property>
  
  <!--配置默认的数据源 -->
    <property name="defaultDataSource" ref="dataSource" />
  
 </bean>

     <!-- 创建jpa实体管理工厂 -->
 <bean id="entityManagerFactory"
  class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
      <!-- 存在一个或者多个持久单元的时候可以先配置持久单元块 然后再进行引用 -->
        <!-- 为什这里已经参照了上面的持久话资源配置,底下还要指定一个具体的持久话单元名称,而且只能指定一个,那也就是说没法真正的配置多个持久化单元?????   -->
    <property name="persistenceUnitManager" ref="pum" />
    
        <!--   这里只能指定一个持久化单元  ,如果不指定 它就去自动去找一个默认的持久化单元,名称 为     “default”  然后系统就报错-->
        <!-- 
          <property name="persistenceUnitName" value="Test"/>
          <property name="persistenceUnitName" value="coldIce"/>
          -->
       
       
          <!-- 只有一个持久单元的的时候可以直接在这里配置引用
           
  <property name="persistenceXmlLocation" value="classpath*:META-INF/persistence.xml"/>
  <property name="dataSource" ref="dataSource"/>  -->
    
        <property name="jpaProperties">
            <props>
                 <prop key="javax.persistence.validation.mode">none</prop>
            </props>
         </property>
 </bean>
 
 <!-- 事物管理器,引用entityManagerFactory对象,并对它进行管理 -->
    <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
       <property name="entityManagerFactory" ref="entityManagerFactory" />
  
    </bean>
      <!-- 使用注解方式来使用声明事物   -->
      <!-- 代理目标对象必须设置为 true 要不然sprig 注入的业务代理bean  就没有办法进行对象上转-->
    <tx:annotation-driven transaction-manager="transactionManager"  proxy-target-class="true"/>

寻求高手解答????

请大家多多赐教谢谢!!

 

 

 

 

 

展开
收起
爱吃鱼的程序员 2020-06-22 20:37:09 393 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    同求。。。。

    2020-06-22 20:37:27
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载
微服务架构模式与原理Spring Cloud开发实战 立即下载
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载