2017-03-07 40 views
0

SpringbootでrestServiceを作成したいと思います。しかし、私は構成可能なデータソースが必要です、私は私が望むときに新しいデータソースを追加する能力を持っていると思います。しかし、私はこの例外を持っている:xmlファイルのSpringbootマルチデータソース

> No qualifying bean of type 'javax.sql.DataSource' available: expected 
> single matching bean but found 2 

そして、私はこのコードを使用しています:

<bean id="jpaVendorAdapter" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> 
     <property name="showSql" value="true"/> 
     <property name="generateDdl" value="true"/> 
     <property name="database" value="ORACLE"/> 
    </bean> 

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
     <property name="driverClassName" value="oracle.jdbc.OracleDriver"/> 
     <property name="url" value="jdbc:oracle:thin:@localhost:9999:TEST"/> 
     <property name="username" value="test"/> 
     <property name="password" value="test"/> 
    </bean> 

<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> 
     <property name="dataSource" ref="dataSource"/> 
     <property name="jpaVendorAdapter" ref="jpaVendorAdapter"/> 
     <!-- spring based scanning for entity classes--> 
     <property name="packagesToScan" value="com.orange.aurore.model.entity"/> 
     <property name="persistenceUnitName" value="msPersistenceUnit" /> 
</bean> 

<bean id="controllerService" class="...controller.impl.ControllerServiceImpl"> 
    <property name="entityManager" ref="entityManagerFactory" /> 
    <property name="dataSource" ref="dataSource"/> 
</bean> 

と:

<bean id="dataSource2" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
      <property name="driverClassName" value="oracle.jdbc.OracleDriver"/> 
      <property name="url" value="jdbc:oracle:thin:@localhost:9999:TEST"/> 
      <property name="username" value="test2"/> 
      <property name="password" value="test2"/> 
     </bean> 

    <bean id="entityManagerFactory2" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> 
      <property name="dataSource" ref="dataSource2"/> 
      <property name="jpaVendorAdapter" ref="jpaVendorAdapter"/> 
      <!-- spring based scanning for entity classes--> 
      <property name="packagesToScan" value="com.orange.aurore.model.entity"/> 
      <property name="persistenceUnitName" value="msPersistenceUnit2" /> 
    </bean> 

    <bean id="controllerService2" class="...controller.impl.ControllerServiceImpl"> 
     <property name="entityManager" ref="entityManagerFactory2" /> 
     <property name="dataSource" ref="dataSource2"/> 
    </bean> 

とJavaコードで:

public void setEntityManager(final HibernateEntityManagerFactory entityManager) { 
    final RepositoryFactorySupport factorySupport = new JpaRepositoryFactory(entityManager.createEntityManager()); 

    controlRepository = factorySupport.getRepository(ObjControlRepository.class); 

感謝をあなたのお手伝いをします。

答えて

0

私はちょっと私の2つの構成のいずれかのプライマリ= "真"を追加する愚かなミスだった。

+0

このプロパティはどこに追加されましたか?あなたの変更されたXMLを投稿してください –