複数の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.sqlとimport_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で入手できます。