複数のSQLインポートファイルを使用したSpring Boot

複数のSQLインポートファイルを使用したSpring Boot

1. 概要

Spring Bootでは、主に統合テストのデータを準備するために、サンプルデータをデータベースにインポートできます。 箱から出してすぐに、2つの可能性があります。 We can use import.sql (Hibernate support) or data.sql (Spring JDBC support) files to load data

ただし、読みやすいように、またはモジュール間でinitデータを使用していくつかのファイルを共有するために、1つの大きなSQLファイルをいくつかの小さなSQLファイルに分割することがあります。

このチュートリアルでは、HibernateとSpringJDBCの両方でそれを行う方法を示します。

2. 休止状態のサポート

sample data to load with a propertyspring.jpa.properties.hibernate.hbm2ddl.import_filesを含むファイルを定義できます。 これは、テストリソースフォルダー内のapplication.propertiesファイルで設定できます。

これは、JUnitテスト専用のサンプルデータをロードする場合です。 値は、インポートするファイルのコンマ区切りリストである必要があります。

spring.jpa.properties.hibernate.hbm2ddl.import_files=import_active_users.sql,import_inactive_users.sql

この構成では、import_active_users.sqlimport_inactive_users.sqlの2つのファイルからサンプルデータが読み込まれます。 ここで重要なのは、have to use prefix spring.jpa.properties to pass values (JPA configuration)to the EntityManagerFactoryであるということです。

次に、SpringJDBCサポートを使用してそれを行う方法を示します。

3. Spring JDBCサポート

初期データとSpring JDBC support is very similar to Hibernate. We have to use the spring.datasource.dataプロパティの構成:

spring.datasource.data=import_active_users.sql,import_inactive_users.sql

上記のように値を設定すると、Hibernateサポートと同じ結果が得られます。 ただし、重要なadvantage of this solution is a possibility to define value using an Ant-style pattern

spring.datasource.data=import_*_users.sql

上記の値は、import_*_users.sql patternに一致する名前のすべてのファイルを検索し、その中にあるデータをインポートするようにSpringに指示します。

4. 結論

この短い記事では、Spring Bootアプリケーションを構成して、カスタムSQLファイルから初期データをロードする方法を示しました。

最後に、HibernateとSpring JDBCの2つの可能性を示しました。 どちらも非常にうまく機能し、どちらを選択するかは開発者次第です。

いつものように、この記事で使用されている完全なコード例は、over on Githubで入手できます。