DBにアクセスするためにJdbcTemplateを使用することを検討していますが、各クラスが使用できるさまざまなDB接続があるため、jdbcTemplateを注入することはオプションではありません。したがって、
jdbcTemplate = new JdbcTemplate(dataSource);
取引ポリシーはどうなりますか?DB で自動コミットがオフになっています。
DBにアクセスするためにJdbcTemplateを使用することを検討していますが、各クラスが使用できるさまざまなDB接続があるため、jdbcTemplateを注入することはオプションではありません。したがって、
jdbcTemplate = new JdbcTemplate(dataSource);
取引ポリシーはどうなりますか?DB で自動コミットがオフになっています。
各javax.sql.DataSource
オブジェクトを構成して、それが機能する場合は自動コミットを有効にするか、自動コミットを無効にしてトランザクションロジックをプログラムで記述できます。
java.sql.Connection
とクラスの両方に、javax.sql.DataSource
自動コミットを有効/無効にするメソッドがあります。
依存性注入と Spring に関しては、引き続きデータソース オブジェクトをリポジトリに注入できます。また、各リポジトリにクラスを拡張させる場合は、派生メソッドorg.springframework.jdbc.core.support.JdbcDaoSupport
を使用して JdbcTemplate オブジェクトを使用できます。getJdbcTemplate()
Spring にトランザクション処理を任せることもできます。XA トランザクション マネージャーがない場合は、データソースごとに 1 つのトランザクション マネージャーが必要です。多くのトランザクション マネージャーでは、@Transactional
アノテーションを使用した宣言型トランザクションのサポートは不可能です。ただし、トランザクション マネージャーをサービス クラスに挿入することはできます。これについては、こちらのリファレンス ドキュメントで説明されています。