2017-07-13 9 views
6

レガシーアプリケーションを休止状態に移行していますが、ログインフェーズに問題があります。ここでは(私はそれを変更することはできません)、それがどのように動作するかです:複数のsessionFactoryインスタンスを持つ

  • ユーザーが最初に(すべてのユーザーに対して同じ)の一般的なログイン/パスワードを使用してOracle DBに接続
  • ユーザーは「ログイン」ストアドプロシージャを実行し、パラメータとして一意のパスワードを入力する手順は
  • ユーザーが切断DBからユーザーに固有のOracle DBのユーザー名/パスワードを返し、私は電流増幅率

ストアドプロシージャによって与えられた資格情報を使用して再接続

  • 接続されたユーザーごとにsessionFactoryのインスタンスを1つ作成する必要はありませんが、これがパフォーマンスに影響することは心配です。これを行うより良い方法はありますか? 「独立したデータベース」戦略と

    おかげ

  • +0

    https://stackoverflow.com/questions/14411860/why-use-only-one-sessionfactory-object-per-applicationを見ましたか?ファクトリデザインパターンを実装しなければならないメリットについて説明します。 –

    +0

    はい、ありがとうございます。しかし、異なるログイン/パスワードで1つのセッションファクトリインスタンスを持つ方法はありますか? – user2711115

    +0

    これは本質的にhttps://stackoverflow.com/questions/7520583/hibernate-multiple-users-dynamically-changingと同じ問題です。複数のSessionFactoriesを使用する以外の方法はないようです... – user2711115

    答えて

    1

    休止Multitenancyは、あなたが実際に同じデータベースが異なる資格情報に接続している場合でも動作します。正しいユーザー名とパスワードで接続を返すには、 MultiTenantConnectionProviderを指定する必要があります。

    関連する問題