Тест мультиарендности Hibernate завершается неудачно с NPE

Я использую мультитенантность на основе схемы, предоставляя реализации как для MultiTenantConnectionProvider, так и для CurrentTenantIdentifierResolver. Попытка получить сеанс гибернации для одного арендатора не удалась с помощью NPE. Глядя на исходный код hibernate, кажется, что JDBCServicesImpl инициализирует connectionProvider значением null в блоке else.

private JdbcConnectionAccess buildJdbcConnectionAccess(Map configValues) {
    final MultiTenancyStrategy multiTenancyStrategy = MultiTenancyStrategy.determineMultiTenancyStrategy( configValues );

    if ( MultiTenancyStrategy.NONE == multiTenancyStrategy ) {
        connectionProvider = serviceRegistry.getService( ConnectionProvider.class );
        return new ConnectionProviderJdbcConnectionAccess( connectionProvider );
    }
    else {
        connectionProvider = null;
        final MultiTenantConnectionProvider multiTenantConnectionProvider = serviceRegistry.getService( MultiTenantConnectionProvider.class );
        return new MultiTenantConnectionProviderJdbcConnectionAccess( multiTenantConnectionProvider );
    }
}

Пожалуйста, найдите тестовый пример для этого здесь - http://pastebin.com/7Mt9wtHt и его трассировку стека - http://pastebin.com/8ygAu7eh

Есть ли что-то основное, что я упускаю?


person Andy Dufresne    schedule 23.04.2015    source источник
comment
Привет, можешь опубликовать трассировку стека ошибки? Я хочу проверить, где ты взял NPE.   -  person kucing_terbang    schedule 24.04.2015
comment
Конечно, я прикрепил его как еще один pastebin к сообщению   -  person Andy Dufresne    schedule 24.04.2015


Ответы (2)


Ну, после просмотра исходного кода некоторое время. Hibernate (на данный момент) не поддерживает экспорт схемы. это взято из их документации.

В настоящее время экспорт схемы не работает с мультитенантностью. Это может не измениться

Итак, в вашем случае исправлением будет удаление этой строки

config.getProperties().put(AvailableSettings.HBM2DDL_AUTO, "validate");
person kucing_terbang    schedule 02.05.2015

Я также сталкиваюсь с той же проблемой. Когда я гуглил, для этого была опубликована ошибка в спящем режиме. Вот ссылка https://hibernate.atlassian.net/browse/HHH-7395

person user3647307    schedule 30.04.2015