Получить DataStax Session из CassandraOperations - PullRequest
0 голосов
/ 30 октября 2018

Spring Boot Data Cassandra удалила возможность получить com.datastax.driver.core.Session из org.springframework.data.cassandra.core.CassandraOperations. Я пытаюсь исправить старый код, который имеет эти использования. Есть ли простой способ получить сеанс кассандры? Я ищу способ создания подготовленного оператора из Insert с доступом только к экземпляру CassandraOperations, например

cassandraOperations.getSession().prepare(insert);

1 Ответ

0 голосов
/ 30 октября 2018

Мы удалили getSession() из CassandraOperations по двум причинам:

  • Интерфейс разделен на CassandraOperations и CqlOperations. CassandraTemplate (который реализует CassandraOperations) теперь использует CqlOperations в качестве API более низкого уровня.
  • Мы ввели SessionFactory для возможности маршрутизации вызовов CQL на различные Cassandra Session s. Выполнение CQL получает сеанс от настроенного SessionFactory. Сеанс считается действительным во время вызова выполнения, поскольку следующая команда может быть выполнена в другом сеансе.

Вы все еще можете получить Session. Либо звоните:

CqlTemplate cqlTemplate = (CqlTemplate) cassandraTemplate.getCqlOperations();
cqlTemplate.getSession();

или получите Session через контекст Spring (автопровод, поиск через context.getBean(Session.class),…).

...