使用MongoDB的Grails多租户

Wei S

我们正在使用Grails框架创建一个多租户系统。我们的数据库使用MongoDB,我们的多租户策略共享同一个数据库,这意味着大多数文档将具有一个租户ID引用。

我们正在寻找在执行数据库查询和更新时插入或过滤租户ID的插件或常用方法。

任何的想法?

谢谢

汤姆

一种可能的方法:

可以通过使用ApplicationListener监听PreQuery事件来挂接到查询(类似于处理PreUpdate事件等,请参阅GORM文档)。然后,您可以转换org.grails.datastore.mapping.query.Query对象,以添加其他条件以按租户ID进行过滤。您可以通过适当地设置ThreadLocal或通过将其作为会话配置添加到当前会话中,来使适用的租户ID可供PreQuery事件侦听器访问(请参见Session.setSessionConfig)。您可以使用过滤器自动为请求启用租用过滤(这将根据请求参数或其他参数设置线程本地或会话配置)。显然,您会将所有这些内容包装在某些服务中,最好是在一个插件中。

一个问题是,“ get”和“ getAll”请求(也用于内部获取某些关联)目前绕过Query对象,因此避免了您应用的任何过滤,尽管这大概不会成为问题,因为ID在全球范围内是唯一的,但您可能想添加健全性或安全性检查,以确保不违反租约。动态查找器和其他查询方法(其中,DetachedCriteria等)应该可以(“ findById”可以过滤,但“ get”不能)。显然,任何直接GMongo查询也将绕过此功能。

当然,如果您愿意让您的控制器/服务代码对租约有所了解,则有很多替代方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用@Document的mongodb多租户游戏

来自分类Dev

Spring Data MongoDB基于集合的多租户

来自分类Dev

无法初始化代理-休眠-Grails-多租户

来自分类Dev

使用分区与动态租户进行多方案多租户

来自分类Dev

多租户与单租户?

来自分类Dev

Rails:使用Apartment和MySQL的多租户

来自分类Dev

使用 Apache Kudu 实现多租户

来自分类Dev

在 Django 中使用 postgis 和多租户

来自分类Dev

多租户Grails插件-grails.plugin.multitenant.core.exception.NoCurrentTenantException

来自分类Dev

多租户Grails插件-grails.plugin.multitenant.core.exception.NoCurrentTenantException

来自分类Dev

带有MongoDB的Django多数据库多租户

来自分类Dev

MongoDB“手动分片”以实现多租户

来自分类Dev

带有MongoDB的Django多数据库多租户

来自分类Dev

是否使用Hibernate的多租户使用其专用功能?

来自分类Dev

多租户和ruby委托与NoSQL在租户上下文中的使用

来自分类Dev

在多租户Rails 4中使用Appartment gem时如何获取当前租户

来自分类Dev

使用Node.js序列化的多租户(SAAS)

来自分类Dev

在Amazon AWS上使用Apartment gem进行Rails多租户

来自分类Dev

在多租户应用程序中使用Rebus

来自分类Dev

使用Activiti Explorer部署具有多租户支持的流程

来自分类Dev

建议在多租户应用中使用沙发床模型

来自分类Dev

使用Spring Data JPA和Eclipse的多租户链接

来自分类Dev

使用多租户架构更新所有架构

来自分类Dev

如何使用Morphia在Mongo DB中实现多租户

来自分类Dev

如何在多租户环境中使用Microsoft Graph?

来自分类Dev

使用Hyn /多租户在Laravel项目中设置测试

来自分类Dev

使用Hibernate运行多租户代码时获取异常

来自分类Dev

使用生成的端点和gae实现多租户

来自分类Dev

使用Activiti Explorer部署具有多租户支持的流程

Related 相关文章

  1. 1

    使用@Document的mongodb多租户游戏

  2. 2

    Spring Data MongoDB基于集合的多租户

  3. 3

    无法初始化代理-休眠-Grails-多租户

  4. 4

    使用分区与动态租户进行多方案多租户

  5. 5

    多租户与单租户?

  6. 6

    Rails:使用Apartment和MySQL的多租户

  7. 7

    使用 Apache Kudu 实现多租户

  8. 8

    在 Django 中使用 postgis 和多租户

  9. 9

    多租户Grails插件-grails.plugin.multitenant.core.exception.NoCurrentTenantException

  10. 10

    多租户Grails插件-grails.plugin.multitenant.core.exception.NoCurrentTenantException

  11. 11

    带有MongoDB的Django多数据库多租户

  12. 12

    MongoDB“手动分片”以实现多租户

  13. 13

    带有MongoDB的Django多数据库多租户

  14. 14

    是否使用Hibernate的多租户使用其专用功能?

  15. 15

    多租户和ruby委托与NoSQL在租户上下文中的使用

  16. 16

    在多租户Rails 4中使用Appartment gem时如何获取当前租户

  17. 17

    使用Node.js序列化的多租户(SAAS)

  18. 18

    在Amazon AWS上使用Apartment gem进行Rails多租户

  19. 19

    在多租户应用程序中使用Rebus

  20. 20

    使用Activiti Explorer部署具有多租户支持的流程

  21. 21

    建议在多租户应用中使用沙发床模型

  22. 22

    使用Spring Data JPA和Eclipse的多租户链接

  23. 23

    使用多租户架构更新所有架构

  24. 24

    如何使用Morphia在Mongo DB中实现多租户

  25. 25

    如何在多租户环境中使用Microsoft Graph?

  26. 26

    使用Hyn /多租户在Laravel项目中设置测试

  27. 27

    使用Hibernate运行多租户代码时获取异常

  28. 28

    使用生成的端点和gae实现多租户

  29. 29

    使用Activiti Explorer部署具有多租户支持的流程

热门标签

归档