2013-03-12 167 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