У меня есть таблица в 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 фильтрует оставшиеся столбцы кластеризации по пустой строке, что приводит к неверным результатам.