В Spring Data — Cassandra (SDC) я хочу повторно использовать один и тот же сеанс драйвера DataStax, но получить доступ к разным пространствам ключей в зависимости от того, какой арендатор (в многопользовательской модели SaaS) обращается к Cassandra в данный момент. Тем не менее, согласно моему исследованию, добавление пространства ключей для создания полностью квалифицированных запросов является предпочтительным способом достижения этой цели.
Есть ли у SDC хуки для этого? Я ищу что-то похожее на поддержку нескольких арендаторов Hibernate. В Hibernate он может повторно использовать один и тот же пул соединений. Приложение предоставляет способ сообщить Hibernate, какой арендатор находится в текущем контексте, и может контролировать, как подключается сеанс Hibernate — возможно, другую схему для каждого арендатора, вызывая «SET SCHEMA 'foo_tenant_schema'» в соединении JDBC или что-то в этом роде.
Если нет, то мне нужно написать это самому. Это нормально. Я думаю, что загрузил бы карту «tenantID-to-keyspace» и каким-то образом динамически добавил ее, чтобы сделать полноценный вызов. Я не уверен, как это повлияет на PreparedStatements сеанса DataStax и т. д.
Если есть мысли как лучше, расскажите.