【发布时间】:2015-04-23 05:49:08
【问题描述】:
我正在使用基于模式的多租户为 MultiTenantConnectionProvider 和 CurrentTenantIdentifierResolver 提供实现。尝试为单个租户获取休眠会话失败并出现 NPE。 查看hibernate的源代码,似乎JDBCServicesImpl在else块中将connectionProvider初始化为null
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
我错过了什么基本的东西吗?
【问题讨论】:
-
嗨,你能发布错误堆栈跟踪吗?我想看看你从哪里弄来的 NPE。
-
当然,我已将它作为另一个粘贴箱附加到帖子中
标签: java hibernate nullpointerexception hibernate-4.x multi-tenant