Spring资料MongoDB:如何在CrudRepository中实现多租户

Spring Data MongoDB: how to implement multi-tenancy in CrudRepository

我将我的数据库设计为支持多租户:每个文档都有对 Tenant.

的引用

我正在使用 Spring 数据 MongoDB 来实现数据访问逻辑,我需要处理存储库中租户的文档检索。

有没有通用的实现方法?我是否需要覆盖 CrudRepository 的每个方法以仅匹配来自特定租户的文档,或者是否有一些工具可以实现此目的?

我最终决定按照 Markus W Mahlberg 在他的评论中的建议在服务层实施多租户。

在存储库级别,我创建了一个 findByTenantIdAndId 查询来检查某个 entity/document id 是否属于正确的租户。

我有一个 UserDetails 接口的自定义实现,为登录用户存储 tenantId。我通过 SecurityContextHolder.

在服务层检索登录的用户