正如标题所示,我有一个应用程序(Spring Boot),它必须对 SQL Server 数据库上的指定对象执行一些查询。这种数据库具有单个目录和多个模式,必须根据先前的查询和一些命令行参数来选择。
我似乎无法实现涉及 Hibernate Multi-Tenancy 的策略,因为该网站上的大多数教程和答案都处理来自 Web 请求或外部参数的架构名称,而我在创建之前需要数据库连接主要的 Multi-Tenancy EntityManager。因此,我切换到一个自定义数据源,它尝试更改连接的默认架构(使用 ALTER USER... WITH DEFAULT_SCHEMA = ...
)。但这也会失败,因为登录用户无权更改自己的默认架构。
所以我不知道该怎么办。有什么建议吗?
最佳答案
只需为每个模式创建一个 EntityManager(Factory) 并将它们放入 map 中以供选择。
如果您事先不知道架构,您可以在了解架构后立即创建 EntityManager(Factory)。
您可以通过编程方式配置 EntityManagerFactory。
关于java - Spring Data JPA 存储库的动态模式选择(模式来自数据库),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30195918/