2017-02-18 28 views
0

我有一個應用程序在MVC中部署在服務器上的Hibernate。目前只有一個客戶正在使用此應用程序。現在有很多客戶端,所有人都將使用這個應用程序與不同的數據庫,但架構將相同。 對於這種實現,我正在考慮一種方法 - 我已經創建了一個新的數據庫,其中表中保存了有關各個客戶端數據庫連接字符串的信息。
當應用程序運行時,Nhiberate爲包含所有客戶端數據庫和主數據庫的所有數據庫創建多個會話工廠。 例如,有兩個客戶'A'和'B',其數據庫名稱爲'A_db'和'B_db'。另一個主連接字符串爲「All_db」。然後在這種情況下,nhibernate爲所有三個分貝創建3個會話工廠。 所以當用戶輸入他們的登錄憑據時,我會從主數據庫中檢查該客戶端的相關連接字符串。然後銷燬與該客戶端數據庫連接字符串無關的所有會話工廠。所以通過這樣做,只剩下一個屬於他的數據庫的會話工廠。 這是我的方法是否正確? 而且我會朝着正確的方向發展,然後爲這種方法提供一些代碼來製作多個會話工廠,然後除去相關的工廠之外的所有會話工廠?如何在MVC中使用Spring中的Multitenant

+0

爲什麼要在每個客戶端分開數據庫,只需在一個和單個數據庫的相應表中添加Client_Id列? –

+0

這是一個應用程序以及客戶端需要單獨的數據庫。 –

回答

0

您可以爲GetSession方法提供連接字符串。看看這link更多的英特爾。