Hibernate 4 MultiTenancy Spring 3架构导出错误

前端之家收集整理的这篇文章主要介绍了Hibernate 4 MultiTenancy Spring 3架构导出错误前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在尝试使用多租户选项和自动模式创建配置Hibernate SessionFactory,但是我坚持这个错误

java.lang.NullPointerException
    at org.hibernate.tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.prepare(SuppliedConnectionProviderConnectionHelper.java:51)
    at org.hibernate.tool.hbm2ddl.DatabaseExporter.

这是我的弹簧配置:

 factorybean">
    sqlDialectsql">truesqldb.jdbcDriver" />
    sqldb:mem:booking1" />
    sqldb.jdbcDriver" />
    sqldb:mem:booking2" />
    

现在我只使用DataSource 1,SampleConnectionProvider和TenantResolver总是返回相同的租户和数据源.但是,当Schema Export运行时,它会抛出NullPointerException.提供给SuppliedConnectionProviderHelper的ConnectionProvider为null.在使用多租户时,他似乎无法选择合适的ConnectionProvider.在SchemaExport上创建SuppliedConnectionProviderHelper:

this.connectionHelper = new SuppliedConnectionProviderConnectionHelper(
            serviceRegistry.getService( ConnectionProvider.class )
    );

使用多租户时可以使用hibernate.hbm2ddl.auto吗?已经在hibernate文档中搜索但没有找到任何内容.

任何帮助将非常感激!

最好的祝福

JoãoSimas

最佳答案
看起来SchemaExport中不支持多租户.我查看了其他地方的源代码连接提供程序是基于多租户策略获得的.请参阅第581 here行.我没有在SchemaExport中看到这种情况.此外,如果有多个数据源,SchemaExport也应该自动在其他数据源中创建模式.我没有看到SchemaExport做那样的事情.

SeeJIRA issue. JIRA问题没有您描述的确切问题,但有建议在评论中创建模式的工作.

这只是我的静态分析.您应该打开问题或在这里等待某人发布答案.据我所知,这似乎是错误不支持功能.

猜你在找的Spring相关文章