这个问题是关于Datastax 的这篇文章。在其“非紧凑表”子主题中,它说
不同之处在于,上面的定义将在内部使用具有单个 UTF8Type 组件的 CompositeType 比较器,而不是 UTF8Type 比较器。这可能看起来很浪费(从技术上讲,使用 CompositeType 会为每个内部单元增加 2 个字节的开销(因此是紧凑/非紧凑术语)),但其原因是集合支持。在内部,集合需要使用 CompositeType。
我的问题是关于最后一行。它说集合需要 CompositeType 比较器。在上面引用的示例中,当我们使用紧凑存储时,它没有给出 CompositeType 比较器,而是一个 UTF8Type 比较器。所以集合不能与它一起使用。我明白了。
但是,如果您有 2 个主键,即使使用紧凑存储,您也会获得 CompositeType 比较器。那为什么在那种情况下我们不能有集合呢?
一个可能的原因是具有 CompositeType 比较器不是 Collections 的唯一要求。如果是,其他要求是什么?
谢谢。