0
我設計了我的數據庫以支持多租戶:每個文檔都有一個對Tenant
的引用。Spring Data MongoDB:如何在CrudRepository中實現多租戶
我使用Spring Data MongoDB來實現數據訪問邏輯,我需要處理我的存儲庫中的租戶的文檔檢索。
是否有共同的方法來實現它?我是否需要覆蓋CrudRepository
的每種方法以僅匹配某個租戶的文檔,或者是否有一些設施可以實現此目的?
我設計了我的數據庫以支持多租戶:每個文檔都有一個對Tenant
的引用。Spring Data MongoDB:如何在CrudRepository中實現多租戶
我使用Spring Data MongoDB來實現數據訪問邏輯,我需要處理我的存儲庫中的租戶的文檔檢索。
是否有共同的方法來實現它?我是否需要覆蓋CrudRepository
的每種方法以僅匹配某個租戶的文檔,或者是否有一些設施可以實現此目的?
我終於決定在服務層實施多租戶,建議使用Markus W Mahlberg在他的評論中。
在存儲庫級別,我創建了一個findByTenantIdAndId
查詢以檢查某個實體/文檔id
是否屬於適當的租戶。
我有一個自定義實現UserDetails
接口,爲登錄用戶存儲tenantId
。我通過SecurityContextHolder
在服務層檢索記錄的用戶。
也許這是interessting爲你:https://github.com/Loki-Afro/multi-tenant-spring-mongodb – user3415653 2015-04-01 14:20:48
@ user3415653這是爲多個數據庫應用程序,我有一個共享DB爲所有租戶 – davioooh 2015-04-01 14:42:41
實現一個服務層,在檢索方法中獲取當前用戶,並查詢所有符合條件的對象+租戶字段中的用戶標識。爲了增加安全性,你可以實現Spring Security [@PostFilter規則](http://docs.spring.io/spring-security/site/docs/current/reference/html/el-access.html#filtering-using- prefilter-and-postfilter)檢查租戶字段是否與當前用戶的Id匹配。 – 2015-04-01 16:23:08