2017-02-18 5 views
0

MVCでHnibernateをサーバーにデプロイしたアプリケーションがあります。現在、このアプリケーションを使用しているクライアントは1つだけです。今では多くのクライアントがあり、すべてが異なるデータベースでこのアプリを使用しますが、スキーマはすべて同じです。 この実装では、アプローチを考えています。 私はテーブルに個々のクライアントデータベース接続文字列に関する情報を保持する新しいデータベースを作成しました。
アプリケーションが実行されると、Nhiberateはすべてのクライアントデータベースとメインデータベースを含むすべてのデータベースに対して複数のセッションファクトリを作成します。 たとえば、データベース名が「A_db」と「B_db」の2つのクライアント「A」と「B」があります。そして、 'All_db'として接続文字列を保持するもう一つのメインデータベース。次に、この場合、nhibernateは3つすべてのデータベースに対して3つのセッションファクトリを作成します。 したがって、ユーザーがログイン資格情報を入力すると、そのクライアントの関連接続文字列をメインデータベースからチェックします。そのクライアントデータベース接続文字列に関連しないすべてのセッションファクトリを破棄します。したがって、これを行うことで、自分のデータベースに属するセッションファクトリが1つだけ残ることになります。 これは私のアプローチが正しいのですか? そして、私は正しい方向に進み、複数のセッションファクトリを作成し、関連するものを除いてすべてのセッションファクトリを削除してこのアプローチのコードを提供しますか?NhibernateでMultitenantをMVCのSpringで使用する方法

+0

1つのデータベース内のそれぞれのテーブルにClient_Id列を追加するだけの場合、クライアントごとにデータベースを分離するのはなぜですか? –

+0

アプリケーションとクライアントが別々のデータベースに必要とするものです。 –

答えて

0

GetSessionメソッドに接続文字列を指定できます。詳細はlinkをご覧ください。

関連する問題