Как включить мультитенантность в Hibernate 4 с JPA? - PullRequest
10 голосов
/ 31 августа 2011

Мне кажется, что поддержка многопользовательской аренды была добавлена ​​в hibernate уже почти шесть месяцев, а обновляется хотя бы один раз с .

Получение мультитенантной сессии за пределами JPA выглядит довольно тривиально:

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

Но как бы вы включили его в приложении, которое использует спящий режим через JPA? (Если возможно).

Заранее спасибо.

Ответы [ 2 ]

7 голосов
/ 03 октября 2013

Вы можете настроить его через свойства в файле persistence.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" />

Если вы используете SCHEMA в качестве мультитенантной стратегии, hibernate.multi_tenant_connection_provider не требуется.

Вы также можете установить эти свойства в своем коде и передать их на карту в Persistence.createEntityManagerFactory().В этом случае вы можете передать экземпляр объекта, а не просто имя класса.

Дополнительная информация в Документация Hibernate .

5 голосов
/ 31 августа 2011

EntityManager.getDelegate () вернет базовый SessionImpl.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...