使用Java驱动程序为cassandra在自定义Cassandra访问器查询中指定可选的群集列

时间:2018-10-08 11:50:05

标签: java cassandra nosql cassandra-3.0

我在Cassandra中有一个id as Primary Key and name, address, department as clustering key的表。现在,我有以下用例:

  • 通过ID和名称获取用户
  • 通过ID,名称和地址获取用户
  • 按ID,名称,地址和部门获取用户

由于在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';

  

Cassandra的Java驱动程序是否提供任何方式,以便我可以通过一个查询处理上述所有用例?

现在,如果我正在编写包含所有聚类列的查询,例如,如果我尝试仅通过id和name获取用户,那么我将得到不正确的结果,因为我无法传递null,并且如果我传递空字符串,则Cassandra会过滤空字符串剩余的聚类列会导致错误的结果。

0 个答案:

没有答案