在 Spring Data - Cassandra (SDC) 中,我想重用相同的 DataStax 驱动程序会话,但根据当前访问 Cassandra 的租户(在多租户 SaaS 模型中)访问不同的 Keyspace。也就是说,在我的研究中,添加键空间以进行完全限定的查询是实现此目的的首选方法。
SDC 有钩子可以做到这一点吗?我正在寻找类似于 Hibernate 的多租户支持的东西。在 Hibernate 中,它可以重用相同的连接池。该应用程序提供了一种方法来告诉 Hibernate 哪个租户在当前上下文中,并且可以控制 Hibernate 的 Session 连接方式 - 通过在 JDBC 连接上调用“SET SCHEMA 'foo_tenant_schema'”或其他方式,可能为每个租户提供不同的模式。
如果没有,我需要自己写。没关系。我想我会加载一个“tenantID-to-keyspace”的地图,并以某种方式动态地附加它以进行完全合格的调用。我不确定这将如何影响 DataStax 会话的 PreparedStatements 等。
如果对更好的方法有任何想法,请告诉。