"分区关键部分:XXXX 必须像其他部分一样受到限制"是什么意思



我创建了一个表,它的主键是((A1,A2),A3,A4,A5)。
我想使用 cassandraTemplate.select(select, MyClass.class);以选择一些记录。

select.setConsistencyLevel(com.datastax.driver.core.ConsistencyLevel.ONE);
select.where(QueryBuilder.eq("A1", A1))
      .and(QueryBuilder.eq("A2", A2))
      .and(QueryBuilder.eq("A3", A3)).limit(100).allowFiltering()
      .setReadTimeoutMillis(100 * 1000);

我收到以下错误: HTTP status 500 - Request processing failed; nested exception is org.springframework.cassandra.support.exception.CassandraInvalidQueryException: Partition key parts: A4 must be restricted as other parts are;

创建脚本:

Create Table TestTable (
  A1 ascii,
  A2 int,
  A3 int,
  A4 ascii,
  A5 int,
  A6 bigint,
  A7 bigint,
  A8 ascii,
  PRIMARY KEY ((A1, A2),A3, A4,A5)
)  WITH compression =  { 'sstable_compression' : 'DeflateCompressor', 'chunk_length_kb' : 64 }
    AND compaction =  { 'class' : 'LeveledCompactionStrategy' };
Create Table TestTable (
  A1 ascii,
  A2 int,
  A3 int,
  A4 ascii,
  A5 int,
  A6 bigint,
  A7 bigint,
  A8 ascii,
  PRIMARY KEY ((A1, A2,A3, A4),A5)
)  WITH compression =  { 'sstable_compression' : 'DeflateCompressor', 'chunk_length_kb' : 64 }
    AND compaction =  { 'class' : 'LeveledCompactionStrategy' };

我犯了一个错误。实际上,我的表的主键是(A1,A2,A3,A4),A5)。