![](/img/trans.png)
[英]How to set consistency level for all queries using Cassandra Java Driver?
[英]How to prevent reordering of Cassandra Set when getting data with Java driver
使用集合檢索描述集合順序。 在我的情況下,從set <text>
類型返回有序集合的功能是我需要的。 但是將集合反序列化為 java Set
和 java Set
並不能保證元素的順序會保持不變。 因此,查詢結果可能與 java 對象不同。
我嘗試getSet()
並返回有序集合。 我不明白為什么。 也許這是由於“LinkedHashSet”的反序列化?
如何保證使用 Java 驅動程序獲得排序的集合,如 Cassandra 文檔中所述?
由SetCodec<T>
保證:
package com.datastax.driver.core;
public abstract class TypeCodec<T> {
...
/**
* This codec maps a CQL {@link DataType#set(DataType) set type} to a Java {@link Set}.
* Implementation note: this codec returns mutable, non thread-safe {@link LinkedHashSet}
* instances.
*/
private static class SetCodec<T> extends AbstractCollectionCodec<T, Set<T>> {
private SetCodec(TypeCodec<T> eltCodec) {
super(DataType.set(eltCodec.cqlType), TypeTokens.setOf(eltCodec.getJavaType()), eltCodec);
}
@Override
protected Set<T> newInstance(int size) {
return new LinkedHashSet<T>(size);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.