2

我通过 JPA使用Hibernate 的多租户功能,每个租户策略都有一个数据库。我的要求之一是能够对每个数据库中存在但显然具有不同数据的表运行查询。这可能吗?

在此先感谢您的时间。

4

1 回答 1

1

没有。这是不可能的,因为当 hibernate 运行查询时,它已经使用连接进行了初始化。Hibernate 中的 MT 支持基本上是在“Hibernate 之外”完成的。这是一种通过适当的连接来喂休眠,当它被喂时:)它绑定到那个连接。

如果您需要跨租户查询,您可能需要重新考虑多租户或将 JPA 提供程序更改为支持“共享模式方法”的提供程序,例如 EclipseLink。使用共享 shema 方法,您有两种选择:

  1. 对包含 mt 感知实体的表运行本机查询
  2. 创建附加实体 - 不要将其标记为多租户 - 将其映射到包含 mt-ware 实体的表并以标准方式运行 JPQL 查询
于 2012-12-05T11:02:33.173 回答