春でマルチテナントアプリケーションを作成しようとしています。
PostgreSql データベースのテナントごとに異なるスキーマを使用しようとしています。
最初に、基本的に のマップを管理するTenantAwareDataSource
拡張を作成し、テナントごとに setConnectionInitSqls() を構成しました。(プロジェクトが以前持っていたデータソースは でした)org.springframework.jdbc.datasource.AbstractDataSource
org.apache.commons.dbcp.BasicDataSource
org.apache.commons.dbcp.BasicDataSource
しかし友人と話し合った結果、アスペクト (aop) で実行されるすべてのステートメントのスキーマを変更し、set search_path to
通常の実行の直前にステートメントを追加するというアイデアを思いつきました。
これにより、データベースへの接続が多すぎることに関連する問題が大幅に簡素化されます (常にすべてのテナントの接続プール)。
AOP を使用して追加のステートメントを実行した人はいますか? 克服すべき落とし穴はありますか?
プットバックorg.apache.commons.dbcp.BasicDataSource
して傍受することを考えています java.sql.Statements.exe*(..)
私はSpringの永続性についてあまり経験がありません。それかSQL文実行傍受(笑)。大丈夫ですか?
この記事を見つけましたが、接続ごとにリファレンスを取得する必要はないと思います。私は正しいですか?
これも見つけました。作者が使用してorg.springframework.jdbc.core.JdbcOperations
います。Spring Roo で生成されたプロジェクトに当てはまるかどうかはわかりません。
皆さん、ありがとうございました。