如何使用JPA在Hibernate 4中启用多租户?

在我看来,好像支持多租户已经被添加到hibernate状态近六个月了,并且至少更新了一次 。

在JPA之外获得多租户会话看起来相当微不足道:

Session session = sessionFactory.withOptions().tenantIdentifier( "jboss" ).openSession(); 

但是如何在通过JPA使用hibernate的应用程序中启用它? (如果可能的话)。

提前致谢。

您可以通过persistence.xml中的属性对其进行配置,如下所示:

    

如果您使用SCHEMA作为多租户策略,则不需要hibernate.multi_tenant_connection_provider

您还可以在代码中设置这些属性,并将它们在映射中传递给Persistence.createEntityManagerFactory() 。 在这种情况下,您可以传递对象实例,而不仅仅是类名。

有关Hibernate文档的更多信息。

EntityManager.getDelegate()将返回底层的SessionImpl