Spring Data JDBC for ScalarDB ガイド
このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてください。
ScalarDB API を直接使用するのは、大量のコードを記述し、トランザクションの API (例: rollback() および commit()) をいつどのように呼び出すかを考慮する必要があるため、難しい場合があります。ほとんどの ScalarDB ユーザーは Java でアプリケーションを開発すると想定されるため、Java で開発するための最も人気のあるアプリケーションフレームワークの1つである Spring Framework を利用できます。Spring Data JDBC for ScalarDB を使用すると、使い慣れたフレームワークを使用して開発を効率化できます。

Spring Data JDBC for ScalarDB の使用方法は、基本的に Spring Data JDBC - リファレンスドキュメントに従います。
このガイドでは、Spring Data JDBC for ScalarDB を使用するためのいくつかの重要なトピックとその制限について説明します。
Spring Data JDBC for ScalarDB は Spring Data JDBC を拡張していますが、完全に代替するものではありません。このドキュメントに記載されている機能のみが公式にテストされサポートされています。
Spring Data JDBC for ScalarDB をプロジェクトに追加します
Gradle を使用して Spring Data JDBC for ScalarDB への依存関係を追加するには、以下を使用します。<VERSION> は、使用している Spring Data JDBC for ScalarDB と関連ライブラリのバージョンにそれぞれ置き換えます。
dependencies {
implementation 'com.scalar-labs:scalardb-sql-spring-data:<VERSION>'
implementation 'com.scalar-labs:scalardb-cluster-java-client-sdk:<VERSION>'
}
Maven を使用して依存関係を追加するには、以下を使用します。... を、使用している Spring Data JDBC for ScalarDB のバージョンに置き換えます。
<dependencies>
<dependency>
<groupId>com.scalar-labs</groupId>
<artifactId>scalardb-sql-spring-data</artifactId>
<version>...</version>
</dependency>
<dependency>
<groupId>com.scalar-labs</groupId>
<artifactId>scalardb-cluster-java-client-sdk</artifactId>
<version>...</version>
</dependency>
</dependencies>
設定
Spring Data JDBC for ScalarDB は、Spring アプリケーションの一部として使用されることになっています。次のプロパティを設定してください。
spring.datasource.driver-class-name
これは、固定値 com.scalar.db.sql.jdbc.SqlJdbcDriver に設定する必要があります。常に必要です。
spring.datasource.driver-class-name=com.scalar.db.sql.jdbc.SqlJdbcDriver
spring.datasource.url
この値は、ScalarDB JDBC 接続 URL 設定に従います。詳細については、ScalarDB JDBC ガイドおよび ScalarDB Cluster SQL クライアント設定を参照してください。常に必要です。
spring.datasource.url=jdbc:scalardb:\
?scalar.db.sql.connection_mode=direct\
&scalar.db.contact_points=jdbc:mysql://localhost:3306/my_app_ns\
&scalar.db.username=root\
&scalar.db.password=mysql\
&scalar.db.storage=jdbc\
&scalar.db.consensus_commit.isolation_level=SERIALIZABLE\
&scalar.db.sql.default_namespace_name.existence_check.enabled=false
scalar.db.sql.default_namespace_name.existence_check.enabled (spring.datasource.url 内)
この設定は推奨されます。また、scalar.db.sql.default_namespace_name を設定する場合は必要です。その場合、true (デフォルト) のままにすると Spring Data JDBC の起動に失敗するため、false に設定してください。
アノテーション
Spring Data JDBC for ScalarDB を使用するには、次のように JVM アプリケーションに @EnableScalarDbRepositories アノテーションが必要です。
@SpringBootApplication
@EnableScalarDbRepositories
public class MyApplication {
// These repositories are described in the next section in details
@Autowired private GroupRepository groupRepository;
@Autowired private UserRepository userRepository;
アノテーションは次のパラメーターをサポートしています:
| パラメーター | デフォルト | 説明 |
|---|---|---|
basePackages (または value) | アノテーション付きクラスのパッケージ | リポジトリインターフェースをスキャンするベースパッケージ。複数の @EnableScalarDbRepositories アノテーションを使用してスキャン競合を避ける場合に必要です。 |
transactionManagerRef | scalarDbTransactionManager | トランザクションマネージャーの bean 名。2フェーズコミットトランザクションの場合は scalarDbSuspendableTransactionManager に設定します。 |
jdbcOperationsRef | scalarDbNamedParameterJdbcTemplate | 使用する NamedParameterJdbcOperations の bean 名。 |
dataAccessStrategyRef | "" (自動検出) | DataAccessStrategy の bean 名。複数データソース設定で必要です。 |
最もシンプルなケース (単一の ScalarDB データソース) では、デフォルトが次のセクションで説明する自動構成された bean を指すため、これらのパラメーターを設定する必要はありません。