質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

Q&A

0回答

259閲覧

Spring Boot + JPAを使用して複数データベース接続したい

kikirara

総合スコア4

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

0グッド

0クリップ

投稿2022/11/01 05:39

実現したいこと

PostgresとSQLServerの2つのデータベースに接続してデータを取得できるようにしたいです。
すでにPostgres単体で接続することには成功できていて、
今回追加でSQLServerにも接続したいのですが、起動時にエラーが発生して
解決方法がわかりません。
初心者ですのでわかりやすいようにご教授頂きたいです。
よろしくお願いします。

発生している問題・エラーメッセージ

ERROR 13748 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter *************************** APPLICATION FAILED TO START *************************** Description: Field userRepository in com.builders.euctools.service.UserService required a bean of type 'com.builders.euctools.repository.primary.UserRepository' that could not be found. The injection point has the following annotations: - @org.springframework.beans.factory.annotation.Autowired(required=true) Action: Consider defining a bean of type 'com.builders.euctools.repository.primary.UserRepository' in your configuration.

該当のソースコード

application.properties

1#プライマリーDB(Poasgres) 2spring.datasource.url=jdbc:postgresql://192.168.XXX.XXX:5432/JTN 3spring.datasource.username=postgres 4spring.datasource.password=XXXXX 5spring.datasource.driverClassName=org.postgresql.Driver 6 7#セカンダリーDB(SQLServer) 8spring.datasource.secondary.url=jdbc:sqlserver://192.168.XXX.XXX:1433;databaseName=edit 9spring.datasource.secondary.username=sa 10spring.datasource.secondary.password=XXXXX 11spring.datasource.secondary.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver

Java

1package com.builders.euctools.config; 2 3@Configuration 4@EnableJpaRepositories( 5 basePackages = "com.builders.euctools.primary", 6 entityManagerFactoryRef = "primaryEntityManager", 7 transactionManagerRef = "primaryTransactionManager" 8) 9public class PrimaryDataSourceConfiguration { 10 @Bean 11 @Primary 12 @ConfigurationProperties(prefix = "spring.datasource") 13 public DataSourceProperties primaryProperties() { 14 return new DataSourceProperties(); 15 } 16 17 @Bean 18 @Primary 19 @Autowired 20 public DataSource primaryDataSource(@Qualifier("primaryProperties") 21 DataSourceProperties properties) { 22 return properties.initializeDataSourceBuilder().build(); 23 } 24 25 @Bean 26 @Primary 27 @Autowired 28 public LocalContainerEntityManagerFactoryBean primaryEntityManager(EntityManagerFactoryBuilder builder,@Qualifier("primaryDataSource") DataSource dataSource){ 29 return builder.dataSource(dataSource) 30 .packages("com.builders.euctools.entity.primary") 31 .persistenceUnit("primary") 32 .build(); 33 } 34 35 @Bean 36 @Primary 37 @Autowired 38 public JpaTransactionManager primaryTransactionManager(@Qualifier("primaryEntityManager") LocalContainerEntityManagerFactoryBean primaryEntityManager) { 39 JpaTransactionManager transactionManager = new JpaTransactionManager(); 40 transactionManager.setEntityManagerFactory(primaryEntityManager.getObject()); 41 return transactionManager; 42 } 43}

Java

1package com.builders.euctools.config; 2 3@Configuration 4@EnableJpaRepositories( 5 basePackages = "com.builders.euctools.secondary", 6 entityManagerFactoryRef = "secondaryEntityManager", 7 transactionManagerRef = "secondaryTransactionManager" 8) 9public class SecondaryDataSourceConfiguration { 10 @Bean 11 @ConfigurationProperties(prefix = "spring.datasource.secondary") 12 public DataSourceProperties secondaryProperties() { 13 return new DataSourceProperties(); 14 } 15 16 @Bean 17 @Autowired 18 public DataSource secondaryDataSource(@Qualifier("secondaryProperties") 19 DataSourceProperties properties) { 20 return properties.initializeDataSourceBuilder().build(); 21 } 22 23 @Bean 24 @Autowired 25 public LocalContainerEntityManagerFactoryBean secondaryEntityManager(EntityManagerFactoryBuilder builder,@Qualifier("secondaryDataSource") DataSource dataSource){ 26 return builder.dataSource(dataSource) 27 .packages("com.builders.euctools.entity.secondary") 28 .persistenceUnit("secondary") 29 .build(); 30 } 31 32 @Bean 33 @Autowired 34 public JpaTransactionManager secondaryTransactionManager(@Qualifier("secondaryEntityManager") LocalContainerEntityManagerFactoryBean secondaryEntityManager) { 35 JpaTransactionManager transactionManager = new JpaTransactionManager(); 36 transactionManager.setEntityManagerFactory(secondaryEntityManager.getObject()); 37 return transactionManager; 38 } 39} 40 41```Java 42package com.builders.euctools.repository.primary; 43 44@Repository 45public interface UserRepository extends JpaRepository<UsysUser, String> { 46 47 @Autowired 48 UsysUser findByUseridAndPswd(String userid, String password); 49 50 @Autowired 51 UsysUser findByUserid(String userid); 52 53 @Autowired 54 List<UsysUser> findByGroupid(String groupid); 55 56}

Java

1package com.builders.euctools.service; 2 3@Service 4public class UserService { 5 6 @Autowired 7 UserRepository userRepository; 8 @Autowired 9 UserListRepository userListRepository; 10 11 /** 12 * ユーザー情報 全検索 13 * @return 検索結果 14 */ 15 public List<UsysUser> findAll() { 16 return userRepository.findAll(); 17 } 18 19 /** 20 * ユーザー情報 主キー検索 21 * @return 検索結果 22 */ 23 public UsysUser findByUserid(String userid) { 24 return userRepository.findByUserid(userid); 25 } 26 27 /** 28 * ユーザー情報 主キー検索 29 * @return 検索結果 30 */ 31 public UsysUser findById(String userid) { 32 return userRepository.findById(userid).get(); 33 } 34 35 /** 36 * ユーザー情報一覧 37 * @return 検索結果 38 */ 39 public List<UserList> findUserList() { 40 return userListRepository.findUserList(); 41 } 42 43 /** 44 * ユーザー情報 グループ検索 45 * @return 検索結果 46 */ 47 public List<UsysUser> findByGroupid(String groupid) { 48 return userRepository.findByGroupid(groupid); 49 } 50 51 /** 52 * ユーザー情報 新規登録 53 * @param user ユーザー情報 54 */ 55 public void create(UserDto userDto) { 56 Date now = new Date(); 57 UsysUser user = new UsysUser(); 58 user.setUserid(userDto.getUserid()); 59 user.setPswd(userDto.getPswd()); 60 user.setGroupid(userDto.getGroupid()); 61 user.setUser_name(userDto.getUser_name()); 62 user.setPermit(userDto.getPermit()); 63 user.setPswd_date(now); 64 user.setCreate_date(now); 65 66 userRepository.save(user); 67 } 68 69 /** 70 * ユーザー情報 更新 71 * @param user ユーザー情報 72 */ 73 public void update(UserDto userDto) { 74 Date now = new Date(); 75 UsysUser user = findById(userDto.getUserid()); 76 user.setPswd(userDto.getPswd()); 77 user.setGroupid(userDto.getGroupid()); 78 user.setUser_name(userDto.getUser_name()); 79 user.setPermit(userDto.getPermit()); 80 user.setUpdate_date(now); 81 82 userRepository.save(user); 83 } 84 85 /** 86 * ユーザー情報 更新 87 * @param user ユーザー情報 88 */ 89 public void updatePass(UserDto userDto) { 90 Date now = new Date(); 91 UsysUser user = findById(userDto.getUserid()); 92 user.setPswd(userDto.getPswd()); 93 user.setPswd_date(now); 94 user.setUpdate_date(now); 95 96 userRepository.save(user); 97 } 98 99 /** 100 * ユーザー情報 削除 101 * @param user ユーザー情報 102 */ 103 public void delete(String userid) { 104 userRepository.deleteById(userid); 105 } 106} 107

Java

1package com.builders.euctools.entity.primary; 2 3@Entity 4@Data 5@Table(name="usys_user") 6public class UsysUser { 7 8 /** 9 * ユーザID 10 */ 11 @Id 12 @GeneratedValue(strategy = GenerationType.IDENTITY) 13 @Column(name = "userid") 14 public String userid; 15 16 /** 17 * パスワード 18 */ 19 @Column(name = "pswd") 20 public String pswd; 21 22 /** 23 * グループID 24 */ 25 @Column(name = "groupid") 26 public String groupid; 27 28 /** 29 * ユーザ名 30 */ 31 @Column(name = "user_name") 32 public String user_name; 33 34 /** 35 * 権限 36 */ 37 @Column(name = "permit") 38 public String permit; 39 40 /** 41 * パスワード更新日時 42 */ 43 @Column(name = "pswd_date") 44 public Date pswd_date; 45 46 /** 47 * 作成日 48 */ 49 @Column(name = "create_date") 50 public Date create_date; 51 52 /** 53 * 更新日 54 */ 55 @Column(name = "update_date") 56 public Date update_date; 57}

ヘディングのテキスト

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問