2013-03-12 170 views
1

我剛剛開始使用彈簧數據與jpa存儲庫的spring應用程序。我正計劃使用單個數據庫模式將應用程序作爲多租戶應用程序。我想知道的是將租戶ID附加到每個查詢的最佳方式。當然,我可以在存儲庫中編寫每個查詢,以期望租戶ID參數,並從本地或類似的線程中獲取租戶ID,但是我想知道在這種情況下是否有更好的技術?也許有一種更具說明性的方式來做到這一點,我還沒有遇到過。Spring數據JPA存儲庫多租戶單一模式技術

回答

1

您在JPA實現(Hibernate,EclipseLink等)上使用Spring JPA。因此,您需要在JPA提供程序級別配置多租戶。對於休眠 - see here

你也可以檢查替代方式 - this(警告:內俄語)

+0

我使用休眠,但休眠狀態不支持鑑別方法多租戶到5.0,所以我可能會需要暫時推出我自己的解決方案。 – 2013-03-12 13:04:20

+0

檢查更新的答案 – 2013-03-12 13:13:52

+0

糾正我,如果我錯了,但我認爲你的答案歸結爲:使用休眠過濾器。乍一看,似乎沒有一個好的生命週期方法或類似的實現來訪問休眠會話並動態決定是否應該應用過濾器。您鏈接的文章擴展了HibernatePersistence,如果您想爲每個查詢應用過濾器,這似乎是一個好方法。我可能不需要在100%的查詢中應用過濾器,也許我應該考慮擴展基本回購。 – 2013-03-12 15:15:05