Как включить multi-tenancy в Hibernate 4 с JPA?
Мне кажется, что в hibernate добавлена поддержка multi tenancy уже почти шесть месяцев и обновление по крайней мере один раз, поскольку.
Кажется довольно тривиальным получить сеанс с несколькими арендаторами за пределами JPA:
Session session = sessionFactory.withOptions().tenantIdentifier( "jboss" ).openSession();
но как бы вы включили его в приложении, которое использует hibernate через JPA? (Если можно.)
спасибо заранее.
2 ответов
вы можете настроить его через свойства в упорстве.XML следующим образом:
<property name="hibernate.multiTenancy" value="DATABASE"/>
<property name="hibernate.multi_tenant_connection_provider" value="com.example.MyConnectionProvider" />
<property name="hibernate.tenant_identifier_resolver" value="com.example.MyTenantIdResolver" />
Если вы используете схему в качестве стратегии multi-tenancy hibernate.multi_tenant_connection_provider
не требуется.
вы также можете установить эти свойства в своем коде и передать их на карте в Persistence.createEntityManagerFactory()
. В этом случае вы можете передать экземпляр объекта, а не просто имя класса.
подробнее в Hibernate документация.