2017-02-18 3 views
0

Ich habe eine Anwendung in MVC mit Hnibernate auf einem Server bereitgestellt. Derzeit verwendet nur ein Client diese Anwendung. Jetzt gibt es viele Clients und alle werden diese App mit einer anderen Datenbank verwenden, aber das Schema wird für alle gleich sein. Für diese Implementierung denke ich einen Ansatz- Ich habe eine neue Datenbank in der Tabelle enthalten die Informationen über die einzelnen Client-Datenbank Verbindungszeichenfolgen.
Wenn die Anwendung ausgeführt wird, erstellt Nhiberate mehrere Sitzungsfactorys für alle Datenbanken, die alle Clientdatenbanken und die Hauptdatenbank enthalten. Zum Beispiel gibt es zwei Clients 'A' und 'B' mit ihrem Datenbanknamen 'A_db' und 'B_db'. Und die andere Hauptdatenbank, die Verbindungszeichenfolgen als 'All_db' enthält. In diesem Fall erstellt nhibernate 3 Session-Factories für alle drei db. Wenn Benutzer ihre Anmeldeinformationen eingeben, überprüfe ich die zugehörige Verbindungszeichenfolge für diesen Client aus der Hauptdatenbank. Vernichten Sie dann alle Sitzungsfactorys, die nicht mit dieser Clientdatenbankverbindungszeichenfolge verknüpft sind. Auf diese Weise bleibt nur eine Sitzungsfabrik übrig, die zu seiner Datenbank gehört. Ist das mein Ansatz richtig? Und ich gehe in die richtige Richtung und stelle dann einen Code für diesen Ansatz zur Verfügung, der mehrere Session-Factories erstellt und danach alle Session-Factories außer dem zugehörigen entfernt?So verwenden Sie Multitenant in Nhibernate mit Spring in MVC

+0

Warum separate Datenbank pro Client, wenn Sie einfach die Spalte Client_Id in den entsprechenden Tabellen in einer einzigen Datenbank hinzufügen können? –

+0

Das ist eine Anwendung sowie Client-Bedarf für die separate Datenbank. –

Antwort

0

Sie können der GetSession-Methode eine Verbindungszeichenfolge bereitstellen. Weitere Informationen finden Sie unter link.

Verwandte Themen