Hibernate:使用过滤器的基于鉴别器的多租户?

Hibernate:使用过滤器的基于鉴别器的多租户?,hibernate,multi-tenant,hibernate-filters,Hibernate,Multi Tenant,Hibernate Filters,我在网上读过几篇关于多租户(针对SaaS应用程序中的不同客户端)的文章(如和)。一旦您决定采用基于鉴别器的方法,您就会发现版本4不支持这种方法,但版本5将支持这种方法 不过,您可能会找到几篇关于为此目的使用hibernate过滤器的文章(即和) 我想知道,如果基于过滤器的解决方案可以的话,为什么在版本5中会有一些特殊的实现呢。因此:基于过滤器的解决方案有哪些缺点?(我(见2011年12月6日的评论)他们不使用find语句。但似乎没有其他来源批准这一点。这是真的吗?基于过滤器的解决方案的一些缺点:

我在网上读过几篇关于多租户(针对SaaS应用程序中的不同客户端)的文章(如和)。一旦您决定采用基于鉴别器的方法,您就会发现版本4不支持这种方法,但版本5将支持这种方法

不过,您可能会找到几篇关于为此目的使用hibernate过滤器的文章(即和)


我想知道,如果基于过滤器的解决方案可以的话,为什么在版本5中会有一些特殊的实现呢。因此:基于过滤器的解决方案有哪些缺点?(我(见2011年12月6日的评论)他们不使用find语句。但似乎没有其他来源批准这一点。这是真的吗?

基于过滤器的解决方案的一些缺点:

  • 在持久化时,必须注意租户id,它不会自动持久化。也许可以使用@PrePersist回调方法
  • 方法entityManager.find(EntityClass.class,“ID”)不考虑筛选器值
  • 必须像这样处理@OneToMany关系:
@OneToMany(cascade=CascadeType.ALL)
@JoinColumn(name=“ARTICLE\u ID”)
@过滤器(name=“tenantFilter”,condition=“tenant\u id=:tenantId”)
私人名单儿童;

您是否在一个最小的示例中尝试过它?嘿,这是一个过滤器遗漏的案例的详尽列表吗?我正考虑使用Eclipselink,因为它的缺点