2017-12-27 13 views
1

Springへの新規リリース& Springブートで、2つのデータソースにアクセスしようとしていますが、1つのデータソースにしか接続できません。Springブートで複数のデータソースにアクセスできない

私は、コールが最初のデータソースに行く第二のデータソースにアクセスする機能を呼び出そうと、私は以下のエラーを取得し、

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:表 私はマルチDBアクセスについては、以下のチュートリアルに従っていると、私のコードは、Roufidリンクのコードに似て

存在しない「testify.test」、

  1. Roufid
  2. Baeldung

誰かが私が行方不明ですかどこ私は間違いをやっているものを指摘することはできますか?

以下のコードファイル、

@Configuration 
@EnableJpaRepositories(entityManagerFactoryRef = "aEntityManager", 
transactionManagerRef = "aTransactionManager", 
basePackages = "test.serv") 
public class AConfig { 

@Bean 
@Primary 
@ConfigurationProperties(prefix="spring.datasource.adb") 
public DataSource aDataSource() { 
    return DataSourceBuilder.create().build(); 
} 

@Primary 
@Bean(name="aEntityManager") 
public LocalContainerEntityManagerFactoryBean mysqlEntManFactory(EntityManagerFactoryBuilder build) { 
    return build.dataSource(aDataSource()).persistenceUnit("aPU").build(); 
} 

@Primary 
@Bean(name="aTransactionManager") 
public PlatformTransactionManager mysqlTransactionManager(@Qualifier("aEntityManager") EntityManagerFactory enManFact) { 
    return new JpaTransactionManager(enManFact); 
} 
} 

BConfig.java

@Configuration 
@EnableJpaRepositories(entityManagerFactoryRef = "bEntityManager", 
transactionManagerRef = "bTransactionManager", 
basePackages = "test.serv") 
public class BConfig { 

@Bean 
@ConfigurationProperties(prefix="spring.datasource.bdb") 
public DataSource bDataSource() { 
    return DataSourceBuilder.create().build(); 
} 

@Bean(name="bEntityManager") 
public LocalContainerEntityManagerFactoryBean mysqlEntManFactory(EntityManagerFactoryBuilder build) { 
    return build.dataSource(bDataSource()).persistenceUnit("bPU").build(); 
} 

@Bean(name="bTransactionManager") 
public PlatformTransactionManager mysqlTransactionManager(@Qualifier("bEntityManager") EntityManagerFactory enManFact) { 
    return new JpaTransactionManager(enManFact); 
} 
} 

persistence.xmlの

AConfig.javaです
<persistence xmlns="http://java.sun.com/xml/ns/persistence" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence  http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" 
    version="2.0"> 
<persistence-unit name="aPU" transaction-type="RESOURCE_LOCAL"> 
</persistence-unit> 
<persistence-unit name="bPU" transaction-type="RESOURCE_LOCAL"> 
</persistence-unit> 
</persistence> 

Service.java

public interface Service extends CrudRepository<X, Integer> { 
@Query(value = "select y from test where x = :x", nativeQuery = true) 
List<Object[]> findByName(@Param("x") String x); 
} 

答えて

0

問題は、同じパッケージであなたのリポジトリクラス(Service

@EnableJpaRepositories(entityManagerFactoryRef = "bEntityManager", 
transactionManagerRef = "bTransactionManager", 
basePackages = "test.serv") 

basePackages = "test.serv"

を持っています

seprateパッケージに移動します。それはうまくいくはずです

+0

それは働いた!それが間違いであることはどうでしたか? –

+0

SOは私が4分後にしか受け入れることができないと言っています。それで数分で受け入れます。ああ、ありがとう:) 私はdoとdontが春に見つけられるサイトやチュートリアルを知っていますか? –

関連する問題