0

我想使用复合主键运行以下代码。

Column<String> result = keyspace.prepareQuery(CF_COUNTER1)
    .getKey(rowKey)
    .getColumn("Column1")
    .execute().getResult();
Long counterValue = result.getLongValue();

研究似乎表明它可以是表示键的字符串(如果它不是复合主键)。 文档说它是 type K,唉,我对 Java 不是很有经验,也不知道这意味着什么。它只是继承了很多东西的基本类型吗?如果是这样,我真的不知道getKey(K)处理复合键需要什么(我是吗?)。

4

1 回答 1

2

您只需要编写一个适合数据模型中的列的类。然后,您可以在您的突变或查询中将此课程提供给 Astyanax。

例如,如果您有这样的数据模型

   CREATE TABLE fishblogs (
        userid varchar,
        when timestamp,
        fishtype varchar,
        blog varchar,
        image blob,
        PRIMARY KEY (userid, when, fishtype)
    );

你会创建一个这样的类:

   public class FishBlog {
      @Component(ordinal = 0)
      public long when;
      @Component(ordinal = 1)
      public String fishtype;
      @Component(ordinal = 2)
      public String field;

      public FishBlog() {
      }
   }

Whenfishtype形成您的复合列键,并由FishBlog类表示。Userid 将是您的行/分区键,可以是简单的“字符串”类型。

看看这个博客,详细解释如何使用复合键插入数据(我从这个例子中得到了这个例子)。

希望有帮助。

于 2013-08-20T07:22:28.410 回答