0

这个问题是关于Datastax 的这篇文章。在其“非紧凑表”子主题中,它说

不同之处在于,上面的定义将在内部使用具有单个 UTF8Type 组件的 CompositeType 比较器,而不是 UTF8Type 比较器。这可能看起来很浪费(从技术上讲,使用 CompositeType 会为每个内部单元增加 2 个字节的开销(因此是紧凑/非紧凑术语)),但其原因是集合支持。在内部,集合需要使用 CompositeType。

我的问题是关于最后一行。它说集合需要 CompositeType 比较器。在上面引用的示例中,当我们使用紧凑存储时,它没有给出 CompositeType 比较器,而是一个 UTF8Type 比较器。所以集合不能与它一起使用。我明白了。

但是,如果您有 2 个主键,即使使用紧凑存储,您也会获得 CompositeType 比较器。那为什么在那种情况下我们不能有集合呢?

一个可能的原因是具有 CompositeType 比较器不是 Collections 的唯一要求。如果是,其他要求是什么?

谢谢。

4

1 回答 1

2

它必须是非紧凑存储创建的特定 CompositeType。这允许集合名称成为比较器组件之一。

于 2013-12-31T19:40:15.753 回答