単一の DB がある場合、動的な側面は接続プールに関連するべきではありません。すべての接続は単一のデータベース用です。必要なのは、トランザクションの開始後に適切なスキーマを動的に設定することだけです。
これは、次数が よりも高いいくつかのアスペクトを使用して実現できます<tx:annotation-driven />
。この側面では、現在の接続を取得する必要があります。
DataSourceUtils.getConnection(dataSource)
次の PostgreSQL ステートメントを発行します (パラメーターについては、httpschema
://www.postgresql.org/docs/9.1/static/sql-set.html を参照してください)。
set schema 'schemaname-on-the-basis-of-session-parameter';
postgres でのスキーマの使用も参照してください。
トランザクション管理に関しては、トランザクションは物理的な接続とセッションに関連しています。反対側のスキーマは一種の名前空間であるため、トランザクション管理を変更する必要はありません。ユーザー要求処理中に各トランザクションの開始時に現在のスキーマを設定するだけです。