2017-08-02 127 views
2

應用程序有2個獨立的數據庫,說:多租戶在Hibernate中

  • DB1
  • DB2

和不同公司的數據庫都在這些分裂2數據庫,如:

  • DB1
    • 公司1
    • 公司2
    • 公司3
    • 公司4
  • DB2
    • 公司5
    • 公司6
    • 公司7
    • 公司8

試問,這樣的情景在Hibernate配置?所有示例都提到了基於架構的多租戶或數據庫多租戶。

有什麼辦法可以配置這樣的場景嗎?

+0

那豈不是更容易只是去數據庫多租戶?基於模式的多租戶適用於較小的數據集,但將兩者結合起來並不值得。相反,你會有'Server1'和'Server2'(假設你有多個數據庫服務器),每個公司有4個數據庫。 – Kayaman

+0

@Kayaman數據庫結構已經定義,這是一個現有的應用程序。我無法改變這一點。 –

+0

配置兩個'DataSource's,一個用於DB1,另一個用於DB2。創建['AbstractRoutingDataSource']的兩個實現(https://spring.io/blog/2007/01/23/dynamic-datasource-routing/) - 允許爲當前客戶端選擇DB1的數據源;另一個允許選擇DB2的數據源。最後,創建'AbstractRoutingDataSource'的第三個實現,該實現允許爲當前客戶端選擇其他兩個'AbstractRoutingDataSource'實現中的一個。鏈接的博客具有所有必需的信息。 – manish

回答

0

要做到這一點,你應該在你的配置文件中創建兩個sessionFactory Bean。並在您的DAO圖層中使用限定符註釋調用它。