Astyanax getKey с составным ключом

Я хотел бы запустить следующий код с составным первичным ключом.

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

Исследования показывают, что это может быть строка, представляющая ключ (если это не составной первичный ключ). В документации указано, что это тип K , увы, я не очень разбираюсь в Java и понятия не имею, что это значит. Это просто базовый тип, от которого наследуется множество вещей? Если это так, то я на самом деле не ближе к пониманию того, что нужно getKey(K) для обработки составного ключа (я?).


person Peter Klipfel    schedule 15.08.2013    source источник


Ответы (1)


Вам просто нужно написать класс, который соответствует столбцам в вашей модели данных. Затем вы можете передать этот класс 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() {
      }
   }

When и fishtype формируют ключ составного столбца и представлены классом FishBlog. Идентификатор пользователя будет вашим ключом строки/раздела и может иметь простой «строковый» тип.

Взгляните на в этом блоге очень подробно объясняется как вставлять данные с составными ключами (откуда я взял этот пример).

Надеюсь, это поможет.

person John    schedule 20.08.2013