Укажите необязательные столбцы кластеризации в запросе Custom Cassandra Accessor, используя драйвер Java для Cassandra. - PullRequest
0 голосов
/ 08 октября 2018

У меня есть таблица в Cassandra с id as Primary Key and name, address, department as clustering key.Теперь у меня есть следующие варианты использования:

  • Получить пользователей по идентификатору и имени
  • Получить пользователей по идентификатору, имени и адресу
  • Получить пользователей по идентификатору, имени, адресуи департамент

Поскольку столбцы кластеризации более низкого порядка необязательны в запросе Cassandra, мы используем Custom accessor In Java для описанных выше случаев использования.

Но нам нужно написать 3 различных запроса в пользовательском методе доступа,

Например:

select * from user where id=1 and name='A';

select * from user where id=1 and name='A' and address='a1';

select * from user where id=1 and name='A' and address='a1' and department='d1';

Есть ли драйвер Java для Cassandraпредоставляет какой-либо способ, чтобы я мог обрабатывать все вышеупомянутые варианты использования с помощью одного запроса?

Прямо сейчас, если я пишу запрос со всеми столбцами кластеризации и, например, если я пытаюсь получить пользователейтолько по идентификатору и имени я получаю неправильный результат, так как не могу передать пустое значение, и если я передаю пустую строку, то Cassandra фильтрует оставшиеся столбцы кластеризации по пустой строке, что приводит к неверным результатам.

...