微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.figuration.buildSessionFactory(Configuration.java:1742)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1780)
    at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:242)

这是我的弹簧配置:

 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问题没有您描述的确切问题,但有建议在评论中创建模式的工作.

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐